我找到了how to add a reference programmatically使用VBA,
这解释了如何使用库的名称以编程方式添加对象引用,
以“VBScript_RefExp_55”为例。
我的问题是如何找到此引用名称以在该代码中用于不同的对象库?
例如 PowerPoint 库?
最佳答案
我用它来获取我的引用信息:
Private Sub ListProjectReferencesList()
Dim i As Long
Dim VBProj As Object 'VBIDE.VBProject
Dim VBComp As Object 'VBIDE.VBComponent
Set VBProj = Application.VBE.ActiveVBProject
Dim strTmp As String
On Error Resume Next
For i = 1 To VBProj.References.Count
With VBProj.References.Item(i)
Debug.Print "Description: " & .Description & vbNewLine & _
"FullPath: " & .FullPath & vbNewLine & _
"Major.Minor: " & .Major & "." & .Minor & vbNewLine & _
"Name: " & .Name & vbNewLine & _
"GUID: " & .GUID & vbNewLine & _
"Type: " & .Type
Debug.Print "-------------------"
End With 'VBProj.References.Item(i)
Next i
End Sub
一般来说,我更喜欢使用 GUID 而不是名称来添加它。
但正如 @Rory 所指出的,
您应该使用后期绑定(bind),而不是以编程方式添加引用!
为什么?
因为为了以编程方式添加它们,您的用户必须进入:
- 启动应用程序(Excel、...)的选项
- 信任中心
- 信任中心设置
- “宏设置”选项卡
- 勾选信任对 VBA 项目对象模型的 Access 复选框
- 好的
- 好的
所以你最好用引用来完成你的代码,然后:
- 删除引用
- 将使用这些库的所有声明更改为
Dim ???作为对象
- 检查模块顶部是否有
Option Explicit
(如果没有,请添加) - 查找特定于应用的变量(
Option Explicit
应向其抛出一条消息) - 大量测试您的代码
- 导出模块供其他人使用!
关于excel - 查找对象库vba的VBIDE.Reference.Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43137715/