使用sendKeys函数使用另一个macros(button)停止macros的执行
我有这个Vba代码需要大量的时间来执行,我做了这个sub
停止执行,但它没有工作,我使用了Sendkeys
函数。
sub stop () SendKeys "{Ctrl,Pause}" end sub
我也想恢复执行我的macros,我试图按Ctrl + Break但它没有恢复。 感谢您的帮助。
打开VBE并插入一个模块并复制粘贴下面的代码
Sub Main() For i = 1 To 100000 DoEvents Debug.Print i Next i End Sub Sub PauseMacro() Application.SendKeys "^{BREAK}" End Sub
返回Sheet1并在开发人员选项卡上插入一个button,并将PauseMacro
分配给它。
现在运行Main
子项并按下button来停止Main
macros的执行
哦,顺便说一句 这里是如何使用Application.SendKeys
方法 。
您应该避免使用SendKeys
。
一种类似于我所build议的方法,但不使用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
replace为Dim
。
如何设置一个监视variables,如果它改变了呢?
只需右键单击一个variables并添加一个新的手表。