如何使用Bloomberg VBA API返回特定date的EQS屏幕?

对于给定的彭博EQS屏幕,我希望能够返回给定date的屏幕结果。

我一直在玩Bloomberg文件EqsDataExample.xls一段时间,但我一直无法返回除当前date的屏幕之外的任何东西。

在Excel工作表中使用的彭博function是:

=BEQS(screen_name,"Asof=" & asof_date,) 

下面是从示例中的function,我已经修改失败。 我认为我需要使用覆盖function来做些事情,但现在还没有。

 Public Sub MakeRequest(sScreenName As String, sScreenType As String, sGroup As String) Dim req As Request Dim nRow As Long Set req = refdataservice.CreateRequest("BeqsRequest") req.Set "screenName", sScreenName req.Set "screenType", sScreenType 'req.Set "Group", sGroup ' >> My addition, trying to get the asof date override Dim overrides As Element Set overrides = req.GetElement("overrides") Dim override As Element Set override = overrides.AppendElment() override.SetElement "fieldId", "ASOF=" override.SetElement "value", "20101130" 'MsgBox req.Print ' << ' The following code is used to request data for a custom field that is setup ' using EQS <GO> on the Bloomberg Professional service. To use, uncomment these ' next 3 lines of code and comment out the previous 3 lines of code (above) ' Set req = refdataservice.CreateRequest("CustomEqsRequest") ' req.GetElement("fields").AppendValue "#NameOfCustomField" ' Add name of custom field with # prefix ' req.Append "securities", "IBM US Equity" ' Add name of your security ' Add a correlation id Dim cid As blpapicomLib2.CorrelationId ' Send the request Set cid = session.SendRequest(req) curRow = 0 End Sub 

解决方法是将fieldId设置为“PiTDate” – 我在Bloomberg API文档中find了这个。

这里是工作的代码:

 Public Sub MakeRequest(sScreenName As String, sScreenType As String, sGroup As String) Dim req As Request Dim nRow As Long Set req = refdataservice.CreateRequest("BeqsRequest") req.Set "screenName", sScreenName req.Set "screenType", sScreenType 'req.Set "Group", sGroup ' My Code >> Dim overrides As Element Set overrides = req.GetElement("overrides") Dim override As Element Set override = overrides.AppendElment() override.SetElement "fieldId", "PiTDate" override.SetElement "value", "20141130" 'MsgBox req.Print ' << ' The following code is used to request data for a custom field that is setup ' using EQS <GO> on the Bloomberg Professional service. To use, uncomment these ' next 3 lines of code and comment out the previous 3 lines of code (above) ' Set req = refdataservice.CreateRequest("CustomEqsRequest") ' req.GetElement("fields").AppendValue "#NameOfCustomField" ' Add name of custom field with # prefix ' req.Append "securities", "IBM US Equity" ' Add name of your security ' Add a correlation id Dim cid As blpapicomLib2.CorrelationId ' Send the request Set cid = session.SendRequest(req) curRow = 0 End Sub