我有这个Vba代码需要花费大量时间来执行,我执行此操作sub
来停止执行,但它没有用,我使用了Sendkeys
函数。
sub stop ()
SendKeys "{Ctrl,Pause}"
end sub
我还要恢复宏的执行,我尝试点击Ctrl + Break但它没有恢复。 谢谢你的帮助。
答案 0 :(得分:5)
打开VBE并插入模块并复制粘贴以下代码
Sub Main()
For i = 1 To 100000
DoEvents
Debug.Print i
Next i
End Sub
Sub PauseMacro()
Application.SendKeys "^{BREAK}"
End Sub
返回Sheet1并在开发人员选项卡上插入一个按钮并为其指定PauseMacro
。
现在运行Main
子并点击按钮停止执行Main
宏
答案 1 :(得分:2)
您应该避免使用SendKeys
。
类似于我建议的方法,但不使用SendKeys可能是这样的:
Global IsTimeToStop As Boolean
Sub Main()
IsTimeToStop = False
For i = 1 To 100000
DoEvents
Debug.Print i
If IsTimeToStop Then Exit Sub
Next i
End Sub
Sub PauseMacro()
IsTimeToStop = True
End Sub
如果Global
不是标准模块,请将Dim
替换为{{1}}。
答案 2 :(得分:1)
如果变量上的变量设置监视怎么办?
右键单击变量并添加新手表。