📅  最后修改于: 2023-12-03 15:05:48.215000             🧑  作者: Mango
在使用 VBA 编写程序时,我们有时需要查看程序执行过程中的信息。在这种情况下,使用命令窗口(即 Immediate 窗口)便是一个不错的选择。
然而, VBA 默认情况下是不会保持命令窗口打开的,当程序执行完毕时,你会发现命令窗口立刻消失了。这时可以通过以下代码片段来实现保持命令窗口打开的效果:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Test()
Debug.Print "执行中..."
DoEvents
Sleep 3000 '休眠 3 秒钟
Debug.Print "执行完成!"
End Sub
这段代码利用了 Windows 的 Sleep
函数,在循环中休眠了 3 秒钟,期间可以查看 Immediate 窗口中的输出,直到程序执行完毕。注意,调用 DoEvents
函数可以在等待期间让程序继续响应其他事件。
如果你更希望不需要等待就可以实现保持命令窗口打开的效果,可以在程序执行结束后添加一个无穷循环。例如:
Sub Test()
Debug.Print "执行中..."
DoEvents
'程序执行代码...
Debug.Print "执行完成!"
While True
Wend '无限循环使命令窗口保持打开
End Sub
这个方法的缺点是需要手动终止无穷循环,而且在有些情况下可能会导致 VBA 编辑器崩溃。因此,建议在测试或调试时使用,在正式程序中应使用前一种方法。