VBA:如何在跳转到下一个命令之前给Excel时间进行计算?

时间:2018-08-29 15:59:45

标签: vba bloomberg

我正在使用彭博(Bloomberg)的BDP公式来拉价,这通常需要大约1-4秒。但是,VBA在完成价格拉动之前运行下一行代码,从而导致错误。我想知道是否有一种方法可以告诉Excel运行5秒:

Application.Run“ RefreshAllStaticData”

完整的代码是:

Sub update()

Application.Run "RefreshAllStaticData"

Worksheets("BB").Range("B2:G1000").Copy
Worksheets("Upload").Range("B2").PasteSpecial Paste:=xlPasteValues

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

1 个答案:

答案 0 :(得分:0)

同样,我们没有看到您的所有代码(因为我们不知道Application.Run "RefreshAllStaticData"意味着什么),但这是

Sub update()

Application.Run "RefreshAllStaticData"

'Refresh everything
ActiveWorkbook.RefreshAll
'Wait 5 seconds just in case
Application.Wait (Now + TimeValue("00:00:05"))

Worksheets("BB").Range("B2:G1000").Copy
Worksheets("Upload").Range("B2").PasteSpecial Paste:=xlPasteValues

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub