【问题标题】:Calling Bloomberg BQL queries from Excel VBA从 Excel VBA 调用 Bloomberg BQL 查询
【发布时间】:2020-06-25 14:17:17
【问题描述】:

出于复杂的原因,我想在 VBA 中自动调用 Bloomi BQL 查询。

我正在从 VBA 脚本将输入更改为 Excel 工作表中的 BQL.Query 公式,并调用 Application.Calculate 来运行查询。显示变为“N/A Requesting Data ...”。在 VBA 中,我稍等片刻(使用 Wait()),甚至抛出一个 DoEvents() 以进行良好的衡量。

While rngOS.Value < 0
   Application.Calculate
   Sleep 2000   'Waits 2000 ms
   DoEvents
Wend

问题是,BQL.Query 只是没有返回。只有当我结束 VBA 脚本时,实际数据才会返回到工作表中。

理想情况下,我会采用同步方式从 VBA 调用 BQL.Query 并等待返回。

欢迎所有建议!

【问题讨论】:

  • 代码应该是...

标签: excel vba bloomberg


【解决方案1】:

这是一个指针:https://stackoverflow.com/a/33667663/829571

实质上:安排你的函数稍后运行,检查 BQL 是否完成(例如通过计算“N/A Requesting Data”的数量),如果没有完成,再次安排函数稍后运行,等等. 一旦 N/As 计数降至 0,您就知道更新已完成,您可以继续执行其余代码。

【讨论】:

  • 感谢 assylias!调度相同的宏以递归方式运行,并在其间将控制权交还给 Excel 的方法运行良好……我可以将其启动并在完成后返回。
  • 更新。最后,我使用了 Bloomi COM API 的 VBA 包装器,通过同步 BDH 和 BDP 等价物请求数据。
  • @DS_London 如果您不需要 BQL,那确实更强大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多