Mahmoud Algindy Ответов: 4

Преобразование excel VBA в visual basic .NET 2015


Дорогие,

Пожалуйста, помогите, как преобразовать VBA в VB.net 2015 год

например у меня есть такой код:

Выбор.NumberFormat = "[$-2000000]#,#;[Красный] (#,# # 0)"

что же будет дальше VB.net код

Я пробовал много кодов в интернете, но, к сожалению, не работал

Заранее спасибо

Что я уже пробовал:

Dim myselection as Excel.Диапазон

myselection.NumberFormat = "[$-2000000]#,#;[Красный] (#,# # 0)"

4 Ответов

Рейтинг:
2

Dave Kreskowiak

Вы делаете это, полностью понимая код, который пытаетесь преобразовать, и точно понимая, что он делает, а затем пишете эквивалентный код VB.NET.

Просто прохождение и выполнение построчного преобразования без понимания того, что делает код и в какой среде он работает, не будет работать.


Рейтинг:
13

Mahmoud Algindy

Привет, большое спасибо всем

Я решил сейчас и это код


Dim MySelection As Excel.Диапазон = Глобалы.Файле.Приложение.Выбор
MySelection.NumberFormat = "[$-2000000]#,#;[Красный] (#,# # 0)"


но теперь вопрос в том, как сделать его общедоступным, потому что в настоящее время я должен добавить для каждой кнопки

Пожалуйста, обратитесь к msdn < a href="https://msdn.microsoft.com/en-us/library/cc442817.aspx" >
&ЛТ;/а&ГТ; [в<а href="https://msdn.microsoft.com/en-us/library/cc442817.aspx" цель="_blank" название="Новое окно"и GT;^&ЛТ;/а&ГТ;]


Рейтинг:
1

F-ES Sitecore

Для этого вам нужно будет использовать MaskedTextBox. Это предполагает, что вы разрабатываете приложение Windows Forms, но вы не сказали точно, какую технологию пользовательского интерфейса вы используете, будь то WinForms, WPF, WebForms или MVC, поскольку все они имеют разное решение для этой проблемы.

Класс MaskedTextBox (System.Окна.Формы)[^]


Maciej Los

- Ты ошибаешься. ОП говорит о тексте из ячейки в ячейке.

F-ES Sitecore

ОП ничего не сказал о контексте кода, который он использует. Если он использует офисные объекты, то код такой же, как и свойство. Пожалуйста, не стесняйтесь предлагать альтернативное решение :)

Richard Deeming

Dim myselection as Excel.Range

Это небольшая подсказка! :)

Mahmoud Algindy

Прости, что!

Richard Deeming

Я отвечал F-ES Sitecore, который сказал, что ваш вопрос не имеет никаких признаков того, что вы используете Excel.

Я просто указывал, что это так - цитируемая строка кода из раздела "Что я пробовал" является ключом к разгадке. :)

F-ES Sitecore

ОП отредактировал свой первоначальный пост. Когда я ответил Это была просто эта строка

Выбор.NumberFormat = "[$-2000000]#,#;[Красный] (#,# # 0)"

и вопрос был таков: "как мне преобразовать это в vb.net?". Другой информации, кроме этой, не было, и он обновил свой пост, чтобы дать больше контекста, который позволил людям предоставить более точную помощь, но все в порядке, я возьму голоса вниз.

Mahmoud Algindy

Всем привет.. Спасибо за ваш ответ.. Я разрабатываю Excel add in через Vb. Net 2015 и настройка ленты Excel

Заранее спасибо за вашу помощь

Рейтинг:
0

Maciej Los

Этот фрагмент кода не может изменить форматирование для диапазона MS Excel (ячейка/ячейки), потому что myselection переменная была объявлена и никогда не инициировалась.

Dim myselection as Excel.Range

myselection.NumberFormat = "[$-2000000]#,#;[Red](#,##0)" 


Все, что вам нужно сделать, это инициировать эту переменную, например:
Dim myselection as Excel.Range =  CType(ExcelApp.Worksheets("Sheet1").Range("A17"), Excel.Range)
'where ExcelApp is an object which hold reference to Excel.Application
myselection.NumberFormat = "[$-2000000]#,#;[Red](#,##0)" 



Для получения более подробной информации, пожалуйста, смотрите:
Обзор Объектной Модели Excel[^]
Понимание объектной модели Excel с точки зрения разработчика .NET[^]
Работа с диапазонами[^]
Диапазон.Свойство NumberFormat (Excel)[^]

Удачи!


Mahmoud Algindy

Спасибо вам и спасибо за все

На самом деле я попробовал приведенный ниже код и он работает для одной выбранной ячейки но мне нужно запустить код для текущих выбранных ячеек означает несколько ячеек

Глобальный.Файле.Приложение.ActiveCell. NumberFormat = ("_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)")