在vba中使用Bloomberg API

4

我正在尝试使用Bloomberg API加载数据,使用以下函数-

' Make certain you have a Reference to C:\blp\API\ActiveX\blpdatax.dll
Sub FindBloombergData()
On Error GoTo Handler:

Dim oBlp As BLP_DATA_CTRLLib.BlpData
Dim ReqSecurities As Variant
Dim ReqFields As Variant
Dim vtResult As Variant
Dim n As Integer

Set oBlp = New BlpData
ReqSecurities = Array("SX5E Index")

ReqFields = Array("OPT_CHAIN")

With oBlp
.SubscriptionMode = ByRequest
.Subscribe ReqSecurities, 3, ReqFields, , , vtResult
End With

Stop 'and look at the results in Local or Watch Window
For n = 0 To UBound(vtResult(0, 0), 1)
Debug.Print n, vtResult(0, 0)(n, 0)
Next

Handler:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical
End If

Set oBlp = Nothing
End Sub

然而,每当我试图运行它时,就会出现错误:"编译错误——用户定义的类型未定义"。我做错了什么?它用这段代码突出显示了代码行:Dim oBlp As BLP_DATA_CTRLLib.BlpData,但我肯定已经安装了Bloomberg API。

2
确保你有一个参考……你做了吗?工具 -> 引用,找到 Bloomberg 库并勾选它。 - Alex K.
我有一个参考,但问题仍然存在。 - ecbtln
请在对象浏览器(F2)中检查BLP_DATA_CTRLLib及其BlpData,它们是否存在? - Alex K.
我有BLPMain但没有BLPData。我做错了什么吗? - ecbtln
1
F2会显示使用com dll可用的内容,如果不是您所期望的,请检查您是否拥有正确的版本并查看文档/任何演示代码。 - Alex K.
1个回答

3

我刚遇到了相同的问题。原因非常简单。旧代码已于2011年被弃用,Bloomberg不再支持它。需要将代码转换为Bloomberg的COM V3服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接