每当我运行 Sleep 时,我所有的后台宏都会停止工作。我希望能够在 sleep 不断运行的同时执行 OnKey 事件。
这是 sleep API 的部分
Sub Bombs()
Do While bomb.Offset(, 1).Value <> "*"
bomb.clear
Set bomb = bomb.Offset(, 1)
bomb.Interior.Color = vbRed
Sleep (200)
Loop
End Sub
它基本上会导致一个红色单元格在屏幕上移动。
最佳答案
我使用几年前创建的自定义子 Wait()
,我通常使用它来代替 Sleep
。看看它是否对你有帮助。这是我为测试目的创建的一个非常基本的示例。
Sub Bombs()
Application.OnKey "{DOWN}", "Sample"
Dim bomb As Range
Set bomb = ActiveCell
Do While bomb.Offset(, 1).Value <> "*"
bomb.Clear
Set bomb = bomb.Offset(, 1)
bomb.Interior.Color = vbRed
Wait 5
Loop
Application.OnKey "{DOWN}", ""
End Sub
Private Sub Wait(ByVal nSec As Long)
nSec = nSec + Timer
While nSec > Timer
DoEvents
Wend
End Sub
关于vba - 当我使用 Sleep 时如何防止我的后台宏停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588696/