VBA加载项:如何;嵌入;所需的参考图书馆?获得;“隐藏模块中的编译错误”;向其他用户发送功能外接程序时

VBA加载项:如何;嵌入;所需的参考图书馆?获得;“隐藏模块中的编译错误”;向其他用户发送功能外接程序时,vba,compiler-errors,powerpoint,add-in,reference-library,Vba,Compiler Errors,Powerpoint,Add In,Reference Library,我编写了一个powerpoint加载项,在本地计算机上运行良好。然而,当我通过电子邮件将文件发送给其他人时,突然有一半的功能不再工作,并显示主题行中列出的编译错误 再深入一点,问题似乎是客户端计算机没有正确的参考库(例如Excel 14.0对象库、Outlook、Access等)。在将外接程序作为pptm文件编写时,我正确地引用了这些库,但是想象一下,当我将pptm保存到ppam文件中时,这些参考库不知何故“丢失”了 有人有什么想法吗?请注意,直接在客户端计算机上添加参考库似乎没有帮助。相反,我

我编写了一个powerpoint加载项,在本地计算机上运行良好。然而,当我通过电子邮件将文件发送给其他人时,突然有一半的功能不再工作,并显示主题行中列出的编译错误

再深入一点,问题似乎是客户端计算机没有正确的参考库(例如Excel 14.0对象库、Outlook、Access等)。在将外接程序作为pptm文件编写时,我正确地引用了这些库,但是想象一下,当我将pptm保存到ppam文件中时,这些参考库不知何故“丢失”了

有人有什么想法吗?请注意,直接在客户端计算机上添加参考库似乎没有帮助。相反,我需要向客户端发送基本的pptm文件,添加参考库,然后将该文件直接保存为客户端计算机上的ppam文件,这当然是不实际的。那么,如何将参考库“嵌入”到外接程序中呢

谢谢大家!

那么,如何将参考库“嵌入”到外接程序中呢

你没有

备选方案

使用后期绑定而不是早期绑定

早期绑定的示例代码。

这里我们设置了对MS Word xx.xx对象库的引用

Sub Sample()
    Dim oWrd As Word.Application
    Dim oDoc As Word.Document

    Set oWrd = New Word.Application

    Set oDoc = oWrd.Documents.Open("....")

    '
    '~~> Rest of the code
    '
End Sub
将上述内容转换为后期绑定。

这里我们不设置引用,而是让代码绑定到目标pc中存在的任何版本的MS Word

Sub Sample()
    Dim oWrd As Object
    Dim oDoc As Object

    Set oWrd = CreateObject("Word.Application")

    Set oDoc = oWrd.Documents.Open("....")

    '
    '~~> Rest of the code
    '
End Sub
同样,您也可以更改MS Excel的代码


谢谢西德哈特!这似乎很有希望,我将进一步研究。同时,你能澄清一下我将如何为一些“非标准”参考图书馆进行后期绑定吗?例如,我有一个我想引用的第三方加载项,它的地址如下:C:\Windows\SysWOW64\XYZ.dll再次感谢!第三方dll是否会在目标pc中?如果是,请参阅是,它将在目标pc中。我将尝试一下。谢谢