异步DataClass运行后退出Sub

时间:2017-12-04 19:51:55

标签: excel vba excel-vba

我在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运行?

2 个答案:

答案 0 :(得分:1)

如果它有一个属性可以检查它是否已完成,那么您只需将DoEvents置于Do Until循环中,检查该属性是否已完成。

答案 1 :(得分:-1)

问题是bbg处理程序等待。 所以解决方案是让你的sub等待bbg查询结束,然后调用你的处理数据子。 在stackoverflow上有很多解决方案,所以我会让你找到它。