Как я могу использовать классы из VisualBasic-Express в VBA для проектов Excel или Access? - PullRequest
1 голос
/ 17 сентября 2008

Я сохранил свой код VB-Express как .dll, зарегистрировал его с помощью regasm и создал файл .tlb.

Но когда я пытаюсь запустить функцию из нее в модуле Excel, я получаю: Ошибка времени выполнения "453": невозможно найти точку входа DLL RegisterServiceProcess в kernel32

Какой шаг я пропустил?

Ответы [ 4 ]

2 голосов
/ 18 сентября 2008

См. http://richnewman.wordpress.com/2007/04/15/a-beginner’s-guide-to-calling-a-net-library-from-excel/ или еще лучше попробуйте ExcelDNA (http://groups.google.com/group/ExcelDna)

1 голос
/ 18 сентября 2008

Я думаю, что вы создаете .Net dll и пытаетесь вызвать его из COM-ориентированной среды (VBA), которая не будет работать без посторонней помощи. Если я не ошибаюсь, вам нужно исследовать элементы COM Interop в .Net: Google выдает много перспективных ссылок, одной из которых является эта статья .

Это выглядит немного неприятно, но я ожидаю, что гадость можно где-то спрятать ...

0 голосов
/ 18 сентября 2008

Спасибо за вклад всем, вы помогли мне сделать большой шаг вперед. После выполнения предоставленных вами руководств я получил: Ошибка времени выполнения: '-2147024894' (80070002) ': имя файла или сборки AssemblyName или одна из его зависимостей не найдена.

Но я мог бы исправить это с помощью Обходного пути .

0 голосов
/ 17 сентября 2008

Попробуйте эту статью базы знаний Майкрософт: Не удается запустить макрос, который вызывает 16-битную DLL в 32-битном MS Excel .

У вас есть необходимые права для доступа к DLL?

...