首次启动程序时,Excel VBA代码中的引用不起作用

时间:2019-03-25 14:09:31

标签: excel vba

我对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会话中,引用被存储

有没有办法使此添加的引用永久存储?还是我错过了什么?

0 个答案:

没有答案