如何在 VBA 中为 Excel 或 Access 项目使用 VisualBasic-Express 中的类?

How can I use classes from VisualBasic-Express in VBA for Excel or Access projects?

提问人:Florian 提问时间:9/18/2008 最后编辑:CommunityFlorian 更新时间:4/9/2014 访问量:1120

问:

我将我的VB-Express代码保存为.dll,并在regasm中注册并制作了一个.tlb文件。

但是当我尝试在 Excel 模块中从它运行一个函数时,我得到: 运行时错误“453”:在 kernel32 中找不到 DLL 入口点 RegisterServiceProcess

我错过了哪一步?

Excel DLL com-互操作 VBA

评论


答:

0赞 artur02 9/18/2008 #1

请尝试此 Microsoft 知识库文章:无法在 32 位 MS Excel 中运行调用 16 位 DLL 的宏

您是否具有访问 DLL 的适当权限?

1赞 Mike Woodhouse 9/18/2008 #2

我认为您正在创建一个 .Net dll 并尝试从面向 COM 的环境 (VBA) 调用它,如果没有帮助,它将无法工作。如果我的猜测是正确的,那么你需要调查 .Net 的 COM Interop 元素:Google 抛出了很多看起来很有希望的链接,其中之一就是这篇文章

它看起来有点不愉快,但我希望肮脏可以藏在某个地方......

评论

0赞 Florian 9/18/2008
谢谢迈克!也许是因为我没有将它复制到 artikel 中提到的全局程序集缓存中。明天会尝试。
2赞 gobansaor 9/18/2008 #3

请参阅 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 )

0赞 Florian 9/18/2008 #4

感谢大家的投入,你们帮助我又向前迈进了一大步。 按照您提供的指南进行操作后,我得到:运行时错误:“-2147024894”(80070002)':找不到文件或程序集名称 AssemblyName 或其依赖项之一。

但是我可以使用此解决方法解决此问题。