首页 > 解决方案 > 如何循环刷新彭博数据?

问题描述

我有一个将彭博公式插入单元格的功能

for i = 1 To Data.UsedRange.Row.Count 
    Data.Cells(i, 12).Forumla="=BDP(""" & Data.Cells(i,2).value & " EQUITTY" & _
      """,""EQY_WEIGHTED_AVG_PX"",""VWAP_START_TIME=" & startTime & """,""VWAP_END_TIME="& endTime & _ 
      """,""VWAP_START_DT=" & startDate & """,""VWAP_END_DT=" & endDate & """)"
    Call Application.OnTime(Now + TimeValue("00:00:01"),"ProcessData")
next i


Public Sub ProcessData()
    For i = 1 To Data.UsedRange.Rows.Count
        if Data.cells(i,12).Value = "#N/A Requesting Data..." Then
            Call Application.OnTime(Now + TimeValue("00:00:01"), "ProcessData")
        End If
    Next i
End Sub

该函数从工作表中获取值,然后创建一个包含输出的工作表。
我遍历所有行,以获取股票名称等,然后将 VWAP Bloomberg 公式插入单元格。

我正进入(状态

不适用 请求数据...

我知道彭博需要时间来加载数据;这就是我试图打电话的原因Application.OnTime。它只偶尔工作一次。

例如,我第一次用两个订单运行,它可以工作。如果我运行另一个订单,它会返回 N/A Requesting Data...

标签: excelvbabloomberg

解决方案


请看一下这个帖子:

等到 Excel 完成使用 VBA 填充 Bloomberg 数据

我发现了一个技巧,等到所有请求的数据都从 Bloomberg 发送回我的 Excel 之后,你就可以安全地调用你的ProcessData()


推荐阅读