我正在使用excel VBA,我正在尝试制作它,以便我可以观看宏滚动细胞。当我尝试使用sleep来缓慢地遍历单元格(使用for循环)时,Excel在大约20次迭代后变得无法响应。它然后挂起直到结束,然后在sub完全执行后返回。
以下是实现这一目标的代码:
Option Explicit
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Sub test()
Dim i As Integer
For i = 1 To 50
Sleep 250
Selection.Offset(1, 0).Select
Next i
End Sub
如何阻止这种情况发生?
答案 0 :(得分:5)
将DoEvents
添加到您的循环中。
Sub test()
Dim i As Integer
For i = 1 To 50
Sleep 250
Selection.Offset(1, 0).Select
DoEvents '/ Add do events to return the resource to interface.
Next i
End Sub