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前方出现“丢失”
那么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的链接库文件,的主要内容,如果未能解决你的问题,请参考以下文章
用vba,删除excel文件里某列数据中的[,]和[¥]两个特殊字符