Excel 如何使用彭博VBA API返回特定日期的EQS屏幕?

Excel 如何使用彭博VBA API返回特定日期的EQS屏幕?,excel,vba,bloomberg,Excel,Vba,Bloomberg,我希望,对于给定的彭博EQS屏幕,能够在给定的日期返回屏幕结果 我一直在玩Bloomberg文件EqsDataExample.xls有一段时间了,但除了当前日期的屏幕外,我无法返回任何内容 Excel表格中使用的Bloomberg函数为: =BEQS(screen_name,"Asof=" & asof_date,) 下面是我修改失败的示例中的函数。我想我需要对覆盖功能做些什么,但它还没有实现 Public Sub MakeRequest(sScreenName As String,

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

我一直在玩Bloomberg文件EqsDataExample.xls有一段时间了,但除了当前日期的屏幕外,我无法返回任何内容

Excel表格中使用的Bloomberg函数为:

=BEQS(screen_name,"Asof=" & asof_date,)
下面是我修改失败的示例中的函数。我想我需要对覆盖功能做些什么,但它还没有实现

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
公共子MakeRequest(sScreenName为字符串,sScreenType为字符串,sGroup为字符串)
Dim req As请求
暗淡无光
Set req=refdataservice.CreateRequest(“BeqsRequest”)
要求设置“屏幕名称”,屏幕名称
要求设置“屏幕类型”,sScreenType
'req.Set“组”,sGroup
'>>我的补充,试图获得asof日期覆盖
将替代设置为元素
Set overrides=req.GetElement(“overrides”)
变暗覆盖为元素
Set override=overrides.AppendElment()
override.SetElement“fieldId”,“ASOF=”
override.SetElement“值”、“20101130”
'MsgBox请求打印

“解决方案是将fieldId设置为“PiTDate”-我在彭博API文档中找到了这一点

以下是有效的代码:

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
公共子MakeRequest(sScreenName为字符串,sScreenType为字符串,sGroup为字符串)
Dim req As请求
暗淡无光
Set req=refdataservice.CreateRequest(“BeqsRequest”)
要求设置“屏幕名称”,屏幕名称
要求设置“屏幕类型”,sScreenType
'req.Set“组”,sGroup
'我的代码>>
将替代设置为元素
Set overrides=req.GetElement(“overrides”)
变暗覆盖为元素
Set override=overrides.AppendElment()
override.SetElement“fieldId”、“PiTDate”
override.SetElement“值”,“20141130”
'MsgBox请求打印

'您是否尝试删除
=
override.SetElement“fieldId”、“ASOF”
。另外,
overrides.AppendElment()
-应该是
overrides.appendeelement()
我尝试过在'Asof'后面没有“=”,方法确实是overrides.AppendElment()。彭博社在这方面做出了奇怪的拼写选择。我找到了答案…fieldId应该设置为“PiTDate”-我将粘贴下面的代码。如果这是一个可行的解决方案,您应该接受自己的答案。