每当我运行“睡眠”时,我所有的背景宏都会停止工作。我希望能够在不断运行睡眠的同时执行OnKey事件。

这是睡眠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/

10-12 17:38