2017-01-24 43 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

我认为这正是我想要的。谢谢。 –