我有一个 Excel 表格,其中包含约 300,000 BDH 公式来下载证券价格。
我想要
但是,我不知道 Excel 何时完成填充 Bloomberg 数据,因此很难确定执行 2) 和 3) 的时间。
我写过 VBA,但不确定它是否有效:
在
Module1
Sub CheckFormulas()
If Application.CalculationState = xlDone Then
With Worksheets("Sheet1").UsedRange
.Value = .Value
End With
Else
Application.OnTime Now + TimeValue("00:30:00"), "CheckFormulas"
ActiveWorkbook.Close Savechanges:=True
End If
End Sub
在“这本工作簿”中
Private Sub Run()
Call CheckFormulas
End Sub
所以理论上它应该工作的方式是:
我想知道这是否是实现我的目标的最佳方式,并想知道
Application.CalculationState
是否与彭博公式 BDH 兼容或使用?
最佳答案
在我们的生产环境中,我们使用一个单元格来检查其公式中是否存在带有“Req”的单元格:
=SUM(IFERROR(FIND("Req", _range_to_check_with_formulas_ ),0))
在 VBA Sub 中,我们使用 WHILE LOOP 测试单元格值:
while cell_to_test.value <> 0
Application.Calculate
Application.RTD.RefreshData
DoEvents
Wend
Call _sub_to_do_some_stuff_
关于excel - 等到 Excel 完成使用 VBA 填充 Bloomberg 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952324/