EXCEL VBA中可调用VB的DLL文件中的程序,请问VB程序运行时需要一些有关VB的链接库文件,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL VBA中可调用VB的DLL文件中的程序,请问VB程序运行时需要一些有关VB的链接库文件,相关的知识,希望对你有一定的参考价值。

当EXCEL VBA调用DLL文件中程序时,如电脑中无VB的链接库文件,程序能正常运行吗。请指导,谢谢

若本电脑中无,则不能。 参考技术A 如果dll文件是从VB建的,那必须确认DLL中是否引用了VB特有的东西,如果是,则可能无法运行。

CAD VBA调用VB编译的DLL问题

使用VB编译的DLL文件,在VBA中调用的时候,一般先需要进行设置(工具-引用-浏览-定位到dll文件),当我对程序进行打包安装到其他电脑上后,由于dll文件没有放在相应的位置,那么打开VBA工具-引用后,就会发现dll前面出现丢失,就需要重新设置一下,请问有没有什么办法让它安装后自动设置呢?
例如下图中的,DataQualityLibrary前方出现“丢失”

参考技术A 正常情况下,建议还是使用32位的office。但在特殊的情况下,你必须使用64位office。
那么64位的VBA如何调用32位的dll呢?
答案只有一个:用ActiveX.exe进行包装。在vb6中新建一个activeX.exe工程。
写下如下的代码:
Public Function CreateInstance(ProgID As String) As Object
Set CreateInstance = CreateObject(ProgID)
End Function
进行编译。
64位的VBA代码调用:
Set MyObj32 = CreateObject("MyActiveXExe.cCOM32").CreateInstance("SomeLib.SomeClass")
这样在64位vba中就可以使用32位的activeX.dll的类了。
注意:1、activeX.exe在使用中必须注册。32位的activeX.dll也得注册。
2、这样的调用dll,性能会下降得很厉害,因为这是两个进程间的调用。
3、调试会增加一些麻烦。
参考技术B 参考   回首时那短短的一瞬 参考技术C 安装程序的时候,有没有注册你的 DLL
如果可能的话,安装到系统目录下面本回答被提问者采纳

以上是关于EXCEL VBA中可调用VB的DLL文件中的程序,请问VB程序运行时需要一些有关VB的链接库文件,的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VB6 中使 VB.NET DLL 可调用?

vb.net引用Dll的问题

用vba,删除excel文件里某列数据中的[,]和[¥]两个特殊字符

用vba编程将excel中的数据批量填写到word里面

请问Excel 里面的 VBA 具体能做啥?都有哪些实际的用途?

excel中的vba是啥意思,如何用