我对Excel加载项(使用Excel 2016)进行了一些编码,这些编码也必须由其他用户(使用Excel 365)使用。
为了操纵XML,我添加了对Microsoft XML v6.0的引用。一切在我的机器上都能正常运行。
在其他用户的计算机上运行代码表明未检查引用(尽管在预期的文件位置提供了底层dll)。
我添加了一些代码以编程方式添加了引用(尚无错误处理):
Sub AddXmlReference()
Dim ref As Reference
Dim existRef As Boolean
existRef = False
For Each ref In Application.VBE.ActiveVBProject.References
If ref.Name = "MSXML2" Then
existRef = True
End If
Next ref
If existRef = False Then
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\SysWOW64\msxml6.dll"
End If
End Sub
在其他用户的计算机上启动程序会显示一些我不理解的行为(并且我找不到任何有用的信息): 程序第一次执行时,会遇到错误(尝试操纵XML的模块上的用户定义错误);之后,该程序运行良好。如果我关闭excel并重新启动,则相同的行为再次开始。总而言之,它看起来像:
Excel不存储引用(以某种方式可以理解,因为确定原因的基础代码是只读打开的;但是以某种方式却不是,因为基础代码确实具有引用)
在运行代码时,无法使用添加的引用
在一个excel会话中,引用被存储
有没有办法使此添加的引用永久存储?还是我错过了什么?