我在VBA中有一个自定义类,用于从Bloomberg中提取历史数据。该类及其使用的Bloomberg对象是异步的,基于RTD平台。
我遇到的问题是我运行调用此自定义类的Subs,但自定义类中的事件处理代码仅在我的Sub完成后运行。
Dim bbHist As New HistDataControl
Sub PullDataAndDoStuff()
bbHist.MakeHistRequest StockTicker, "MOV_AVG_50D", startDate, Date
Call DoStuffWithTheData
End Sub
Private Sub DoStuffWithTheData()
..... 'None of this works, because MakeHistRequest / bbHist class hasn't run
End Sub
有没有办法强制Excel等到bbHist运行?
答案 0 :(得分:1)
如果它有一个属性可以检查它是否已完成,那么您只需将DoEvents
置于Do Until
循环中,检查该属性是否已完成。
答案 1 :(得分:-1)
问题是bbg处理程序等待。 所以解决方案是让你的sub等待bbg查询结束,然后调用你的处理数据子。 在stackoverflow上有很多解决方案,所以我会让你找到它。