2016-12-21 110 views
1

我有以下代码,它可以在Excel 2010中正常工作,但由于Bloomberg更新的API,此代码在Excel 2016中不起作用。引用BLP_DATA_CTRLLib.BlpData已过时,但我很努力地使用新的API参考。Bloomberg API参考

有谁知道如何更新我的彭博社参考,以便存储报价?

Function Get_BBG_Price(dataa As Variant, CISI As Long) 

    Dim ReqSecurities As Variant, vtResult As Variant, ReqFields As Variant 
    Dim Arraystr As String 
    Dim oBlp As BLP_DATA_CTRLLib.BlpData 

    ReDim ReqSecurities(1 To UBound(dataa, 1)) 

    For i = 1 To UBound(dataa, 1) 

     ReqSecurities(i) = dataa(i, CISI) & "@IEHY ISIN" ' 

    Next i 

    Set oBlp = New BlpData 

    ' 
    ReqFields = Array("PX_BID") 

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

    Get_BBG_Price = vtResult 

End Function 
+0

定义斗争,所以我们可以帮助你,你从代码或意想不到的结果是错误信息是吗?你能指出一行代码给你带来麻烦吗? –

+0

请发布一些关于彭博的文档。 SO社区拥有这个机会非常渺茫。 –

+0

@JimmySmith:这是导致问题的BLP_DATA_CTRLLib.BlpData。如果我在Excel 2016上运行它,工作表只会崩溃。 – Jeweller89

回答

0

我在看一看,它看起来像这个版本的编码已被弃用。我会想出你前进的“无法创建对象”的路线出现错误,但它可能隐藏在2016年

你很可能希望使用他们这里的C#版本, https://www.bloomberglabs.com/api/libraries/

要把它使用,我会在这里使用代码,http://mikejuniperhill.blogspot.com/2013/06/bloomberg-v3com-api-wrapper-update-for.html *代码太冗长或我会在这里发布。

+1

感谢您的回复。我需要在VBA中的代码,所以C#不是一个选项,请问,你有什么建议可以替代弃用的引用吗? – Jeweller89

+0

你不能直接使用C#版本,但包装将允许你。您只需安装程序集(DLL或EXE),然后通过它们编写的包装器进行调用。 –

+0

我在那里找到了一个C++版本,但那也需要注册DLL。很多.NET与COM兼容,它只是考虑了VBA和VB.NET/C之间变化类型的包装器。 –