在锁定 Windows 时暂停 Excel 宏

Pause Excel macro while Windows is locked

我有一个宏,它 运行 是一个 SQL 查询,它会根据新数据触发电子表格的长时间缓慢重新计算。完成后,如果满足某些条件,我会使用 application.speech 提醒我;这一切都很好。但是:

正如我所说,重新计算可能需要很长时间,所以有时我会锁定 Windows 并在等待期间去做其他事情。有谁知道暂停宏的方法,以便在 Windows 解锁之前它不会 运行 最后几行(即音频警报)?

在您调用 Application.speech 之前,您可以检查系统是否被锁定,如果它被锁定,您每分钟重复一次检查,直到它被解锁。 系统锁定时的代码

Sub SystemLocked()

    Do While Check_If_Locked = "Locked"
        Application.Wait TimeValue("00:00:01")
    Loop

    MsgBox "Done"

End Sub

Check_If_Locked 的代码可以在这里找到 https://www.mrexcel.com/forum/microsoft-access/646623-check-if-system-locked-unlocked-using-vba.html