自动添加对可用引用的引用

时间:2018-02-01 14:00:49

标签: vba excel-vba com excel

我在互联网上搜索并阅读相关文章,但没有找到我的问题的明确答案。

我想总结一下我的工作。我正在使用第三方程序(Simpack)Com-Interface从Simpack程序获取数据和信息到我的excel表。

我正在使用Set Srv = CreateObject("Simpack.Slv")进行COM实现。但在此之前我应该​​从Tools > References > Browse > C:\Program Files\Simpack-2018x\run\bin\win64\_simpack-com-slv.exe定义COM接口* .exe文件当我第一次打开我的宏书或关闭它然后打开。我不能使用Simpack的COM库。因为它从未在“可用参考”部分列出,带有勾号或不勾选。所以我应该再去Tools > References > Browse > C:\Program Files\Simpack-2018x\run\bin\win64\_simpack-com-slv.exe使用Simpack库。

我不知道它与我的绑定类型有关吗?或者我错过了一些重要的事情,但如果它自动执行此过程Tools > References > Browse > C:\Program Files\Simpack-2018x\run\bin\win64\_simpack-com-slv.exe

,那就太棒了

亲切的问候。

2 个答案:

答案 0 :(得分:2)

首先,您需要允许以编程方式访问您的VBA项目。在Excel功能区:DEVELOPER->宏安全性并勾选“信任访问VBA项目对象模型”。然后你可以试试这个:

ThisWorkbook.VBProject.References.AddFromFile "C:\Program Files\Simpack-2018x\run\bin\win64\_simpack-com-slv.exe"

答案 1 :(得分:1)

或许这样的事情。 。 。 。

运行此命令以获取引用的GUID:

'******** Commented out but finds dependent GUID references in the project
'Dim obj As Object
'For Each obj In ThisWorkbook.VBProject.References
    'Debug.Print "Name: ", obj.Name
    'Debug.Print "FullPath: ", obj.FullPath
    'Debug.Print "Version: ", obj.Major & "." & obj.Minor
    'Debug.Print "GUID: ", obj.GUID

'Next obj
'*******************************

然后在您的代码模块和子添加引用中执行类似的操作。 。 。

'VBA
strGUID = "{000204EF-0000-0000-C000-000000000046}"

'ALERT: Don't slay me for On Error Resume Next
'I was doing this fairly quickly this morning
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:=strGUID, Major:=1, Minor:=0

我不打算切换VBA信任,这可能被视为不良行为。

干杯,Wookie