2017-01-24 47 views
0

我寫一個腳本,在for循環像這樣的:立即窗口停止更新的連續運行

Sub test() 
    For i = 1 to 200000 
     'Some code 
     Debug.print i 
    Next i 
End Sub 

當我上升到一定點即時窗口的更新停止,整個應用程序看起來凍結沒有反應,直到200000循環完成。

我已經最小化了我的電子表格並已禁用ScreenUpdating

就成功完成一次跑步而言,沒有什麼大不了的,但我認爲我應該能夠跟上進度,比如當跑步結束時給我一個想法。目前,我使用部分之間的Wait函數來允許窗口更新來解決問題,但我覺得這是一個愚蠢的方式來這樣做......我認爲系統應該足夠聰明以分配資源來更新窗口。 ..

有什麼更好的想法嗎?

+0

我已經運行你的代碼,它循環200k次,沒有錯誤/凍結。我改變的一件事是增加了'Option Explicit'和'Dim i as Long'。嘗試將這些添加到您的代碼中。 – Wujaszkun

回答

1

與其使用Wait,如何使用DoEvents

+0

我認爲這正是我想要的。謝謝。 –