gpt4 book ai didi

excel - 彭博数据... 为什么 Application.WorksheetFunction.BDH 不起作用?

转载 作者:行者123 更新时间:2023-12-04 20:14:31 24 4
gpt4 key购买 nike

我正在尝试将彭博历史数据直接导入 VBA 中的数组:

Dim data As Variant

ticker = "UKGRABIQ Index"
start_date = "12/31/1998"
end_date = "3/31/2015"

data = Application.WorksheetFunction.BDH(ticker, "PX_LAST", start_date, end_date, "ARRAY=TRUE")

Range("A1", "A66").Value = data

最终目标是能够对这些数据进行大量操作,而不仅仅是让它出现在工作表中。

在此先感谢您的帮助。

最佳答案

BDH() 函数由 Bloomberg 插件提供:它不是 native Excel 工作表函数,因此 Application.WorksheetFunction 集合没有它。

您仍然可以或多或少地以这种方式使用 BDH:Application.Evaluate() 方法执行您尝试对 Application.WorksheetFunction 执行的操作。

这是文档:https://msdn.microsoft.com/en-us/library/office/ff193019.aspx

但是,我建议您探索 VBA 可用的 ActiveX 对象,而不是尝试在 VBA 代码中模拟工作表计算。

您需要进入 VBA IDE 菜单,Tools > References... 并浏览 Bloomberg Active-X 数据控件,该控件通常位于 C:\blp\API\ActiveX\blpdatax.dll

此代码片段应该可以工作,但我尚未在我当前的机器上对其进行测试:如果遇到任何错误,请探索对代码、字段和日期的数组的使用(或删除)。

将 arrData 调暗为变体
将 objDataX 调暗为 BLP_DATA_CTRLLib.BlpData
将 objDataX 设置为 BLP_DATA_CTRLLib.BlpData
arrData = objDataX.BLPGetHistoricalData(Array(ticker), "PX_LAST", start_date, end_date)

您需要检查返回的数组:您并不总是从 Bloomberg 获得简单的 2D“网格”,它有时是嵌套数组的结构。

关于excel - 彭博数据... 为什么 Application.WorksheetFunction.BDH 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com