1

我在 Excel 中有 2 个 VBA 宏。宏 1 从另一个 Excel 文件复制一些值。宏 2 向 Bloomberg 请求一些值。宏 1 需要对“Microsoft Excel 12.0 对象库”的引用,而宏 2 需要对要添加的“Bloomberg 数据类型库”的引用。

我希望它让用户即使在没有安装 Bloomberg Excel API 的机器上也可以运行 Macro 1。但是,当我尝试运行 Macro 1 时,我到达了这一行:

Set XL = CreateObject("Excel.Application")

下面并得到以下错误:

 "Cant Find Project or Library"

似乎因为它找不到“Bloomberg 数据类型库”引用,它也没有加载“Microsoft Excel 12.0 对象库”。

在安装了 Bloomberg Excel API 的机器上一切正常。

4

1 回答 1

2

如果你想让同一个文件在两台机器上工作,首先在 VBA Editor -> Tools -> References 中删除对 BBG 的引用。然后在你的代码中做这样的事情:

On Error Resume Next ' turn off errors
Set XL = CreateObject("Excel.Application")

Set BBG = CreateObject("BBGName")

If Not IsEmpty(BBG) Then
    ' Do work with BBG

End If
On Error GoTo 0 ' turn on errors

这将允许您仅在存在 BBG 库时使用 BBG 宏,如果不存在则不会引发错误。

于 2013-08-10T03:04:46.987 回答