Есть ли инструмент, который может портировать или скомпилировать код Excel VBA в C #? - PullRequest
4 голосов
/ 26 февраля 2010

Я не очень разбираюсь в .net, но я работаю над проектом, в котором требуется перенести код Excel VBA, встроенный в электронные таблицы, в автономный C #.

Это какие-нибудь инструменты, которые могут автоматизировать (или полуавтоматизировать) этот порт или компилировать? Насколько хорошо они работают?

Ответы [ 3 ]

7 голосов
/ 26 февраля 2010

Нет. Лучше всего, если не много кода, делать это вручную.

В противном случае ваш пробег может отличаться. Вы можете попробовать преобразовать VBA в VB.NET, а затем использовать инструмент для преобразования этого в C #.

Преобразование кода из VBA в Visual Basic .NET

Десять преобразований кода для VBA, Visual Basic .NET и C #

1 голос
/ 11 ноября 2015

Это старая ветка, но я подумал, что завершу ее так, как я:

Случай 1: преобразование VB в C #

Если вам нужно конвертировать код в C #, используйте конвертер веб-кода Telerik: http://converter.telerik.com/. Просто вставьте свой код VBA (убедитесь, что вы не используете специальные функции или переменные Excel, такие как Range, Worksheets и т. Д.) И конвертируйте. Вы должны быть в состоянии легко повторно использовать код в своем проекте C # .NET в Visual Studio.

Если вы хотите сделать библиотеку многократно используемой в Excel (сделайте ее видимой для COM) посмотрите этот пост здесь.

Случай 2: преобразование VBA в VB.NET

Если вам не нужно делать DLL видимой для COM, просто создайте проект VB.NET в Visual Studio, скомпилируйте и исправьте все найденные ошибки компиляции :).

В противном случае, если вы хотите, чтобы DLL была автоматизирована непосредственно из Excel - я недавно создал надстройку, которая делает именно это. Он создает видимую COM-библиотеку DLL прямо из вашей книги (просто выберите ваши функции VBA) и также вставляет необходимые процедуры загрузки в вашу книгу. Найдите это здесь.

0 голосов
/ 26 февраля 2010

Попробуйте использовать FlexCel.NET с www.tmssoftware.com/site/flexcelnet.asp, и они также имеют некоммерческую версию.

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