2014-09-28 122 views
3

我在運行Excel宏時遇到了問題,因爲它導致我的UI凍結。有沒有辦法在Excel宏中運行異步方法?

考慮下面的代碼:

Call Run_Test() 

Sub Run_Test() 

Set oQTP= CreateObject("Quicktest.Application") 

oQTP.Open "<Test Path>" 
oQTP.Run"<Test Path>" 

End Sub 

這裏的問題是,在運行上述RUN_TEST方法「oQTP.Run」需要一些時間才能完成,期間,如果點擊Excel工作表中的UI凍結這段時間。

那麼有什麼辦法可以異步運行此方法並防止excel凍結?

或者是否有其他技術來防止這種情況?

回答

3

VBA本身不提供對異步編程的任何支持。程序員必須在嵌套循環中明確呼叫DoEvents以允許處理Windows消息隊列。

但是,VBA調用的函數庫可能會提供異步調用。傳統的ADO通過提供指定查詢調用爲異步的選項來實現,當調用完成時(成功或失敗)引發事件。

如果您需要自定義代碼異步運行,您將不得不在提供此類支持的環境(如C#或VB.NET)中編寫代碼,並調用生成的程序集。

+0

如何將'調用到生成的程序集....「中包含一個示例? – JCM 2017-02-08 14:50:20

相關問題