Как я могу использовать классы из VisualBasic-Express в VBA для проектов Excel или Access?
-
01-07-2019 - |
Вопрос
Я сохранил свой код VB-Express как .dll, зарегистрировал его в regasm и создал файл .tlb.
Но когда я пытаюсь запустить функцию из него в Excel-модуле, я получаю: Ошибка времени выполнения ‘453’:Не удается найти точку входа DLL RegisterServiceProcess в kernel32
Какой шаг я пропустил?
Решение
Видишь http://richnewman.wordpress.com/2007/04/15/a-beginner’s-guide-to-calling-a-net-library-из-excel/ или, еще лучше, попробуйте ExcelDNA ( http://groups.google.com/group/ExcelDna )
Другие советы
Я думаю, вы создаете .Net dll и пытаетесь вызвать ее из среды, ориентированной на COM (VBA), которая не будет работать без посторонней помощи.Если я правильно догадываюсь, то вам нужно исследовать элементы COM-взаимодействия .Net:Google выдает множество многообещающих ссылок, одна из которых эта статья.
Это выглядит немного неприятно, но я ожидаю, что эту гадость можно где-нибудь спрятать...
Попробуйте эту статью из Базы знаний Microsoft: Не удается запустить макрос, вызывающий 16-разрядную библиотеку DLL в 32-разрядном MS Excel.
Есть ли у вас надлежащие права на доступ к библиотеке DLL?
Спасибо всем за вклад, вы помогли мне сделать еще один большой шаг вперед.Следуя предоставленным вами руководствам, я получил: Ошибка во время выполнения:'-2147024894' (80070002)':Имя файла или сборки AssemblyName или одна из его зависимостей не были найдены.
Но я мог бы исправить это с помощью этого Обходной путь.