使用 VBA 宏连接引用(工具>引用)

问题描述 投票:0回答:3

我想使用 VBA 代码以编程方式将一些引用连接到我的 VBA 项目,即无需使用“工具”>“引用”手动设置引用。这可能吗?例如 Microsoft Office 12.0 对象库。

vba reference
3个回答
9
投票

您没有提及 Office 应用程序。在 MS Access 中,您可以使用:

ReferenceFromFile "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL"

也就是说,给出您要添加的参考的完整路径。

来自:http://wiki.lessthandot.com/index.php/Add,_Remove,_Check_References

同样,在 Excel 中:

ActiveWorkbook.VBProject.References.AddFromFile "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL"

要在 Excel 中列出参考文献: 昏暗参考作为参考

For Each ref In ActiveWorkbook.VBProject.References
    Debug.Print ref.Description; " -- "; ref.FullPath
Next

这会在我的计算机上的一个特定工作簿上返回以下内容:

Visual Basic For Applications -- C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL
Microsoft Excel 14.0 Object Library -- C:\Program Files\Microsoft Office\Office14\EXCEL.EXE
OLE Automation -- C:\Windows\system32\stdole2.tlb
Microsoft Forms 2.0 Object Library -- C:\Windows\system32\FM20.DLL
Microsoft ActiveX Data Objects 6.0 Library -- C:\Program Files\Common Files\System\ado\msado15.dll
Microsoft XML, v6.0 -- C:\Windows\System32\msxml6.dll
Microsoft Office 14.0 Access database engine Object Library -- C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEDAO.DLL
Microsoft Visual Basic for Applications Extensibility 5.3 -- C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB
Microsoft Office 14.0 Object Library -- C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL

4
投票

引用完整路径充满危险,并且当代码在不同计算机或不同版本中使用时会导致问题。

使用 GUID 会更好,它在大多数(但不是所有实例)中对于应用程序的不同版本保持相同。

这非常有用,特别是如果您为 Excel 2010 编写了需要在 Excel 2010 和 Excel 2013 中使用的代码。


0
投票

还有一个可以找到 MSO.dll 文件的替代位置:

C:\ Program Files(x86)\ Common Files \ microsoft共享\ oFFICE11

只需设置工具>引用>浏览到上述路径并找到MSO.dll

© www.soinside.com 2019 - 2024. All rights reserved.