Excel 每小时运行多个宏,按vba按钮停止
我的代码遇到了两个问题 当按下按钮时,我希望它按顺序调用3个单独的宏,例如Excel 每小时运行多个宏,按vba按钮停止,excel,vba,Excel,Vba,我的代码遇到了两个问题 当按下按钮时,我希望它按顺序调用3个单独的宏,例如 Sub AutoOn() call macro1 call macro2 call macro3 end sub 我尝试了以下代码: Private sub AutoOnBtn_Click() AutoOnCheck.Value = True Application.OnTime Now + TimeValue("00:00:10"), "AutoOn" End Sub 上面的例子应该每10秒运行一次,但是在
Sub AutoOn()
call macro1
call macro2
call macro3
end sub
我尝试了以下代码:
Private sub AutoOnBtn_Click()
AutoOnCheck.Value = True
Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"
End Sub
上面的例子应该每10秒运行一次,但是在测试之后,它只运行一次-我缺少什么
另外,当按下按钮时,如何停止宏的运行,目前我正在使用:
end
它会关闭包括窗体在内的所有内容,但希望窗体保持打开状态,并停止宏。如蒙协助,将不胜感激
谢谢。计时器从现在开始倒计时到10秒,然后触发宏,就这样了 相反,在运行三个宏后,您必须使用
Application.OnTime Now+TimeValue(“00:00:10”)、“AutoOn”
或通过调用Call AutoOnBtn\u单击
重新设置计时器。比如:
Sub AutoOn()
call macro1
call macro2
call macro3
If Not StopRunning Then Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"
end sub
至于阻止它。。。您可以设置一个名为“Stoprunning”的全局变量
(在任何子组件或功能之上):
然后单击您的按钮以停止计划的运行:
Sub somebutton_click()
StopRunning = True
End Sub
最后,在AutoOn()中设置下一次运行时,可以测试该值:
Sub AutoOn()
call macro1
call macro2
call macro3
If Not StopRunning Then Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"
end sub
非常感谢你!!除了我按照您的指定设置的停止运行部分之外,它可以完美地工作。我在AutoOn模块的顶部将其声明为一个全局变量,这需要在其他地方吗?我试图将代码作为注释发布,但格式不正确,因此注释被删除。再次感谢!您可以将其粘贴到任何模块或工作表代码或此工作簿
代码中。您可以通过它的完整路径来引用它,如AutoOn。也可以停止运行,这样,在两年后调试时,您就知道在哪里可以找到它了。@Harris92请编辑您的问题以包含更新,试着使其更简洁以适合此处作为注释,或者创建一个新问题。不过我确实看到了编辑,因此我们可以继续对话,而无需采取任何进一步的行动。要进行故障排除,请在如果没有停止运行…
行上放置一个断点(单击该行并点击F9
,它将高亮显示为深红色。现在确保计划程序正在运行并点击“停止运行”按钮。等待下一个计划运行,程序将在高亮显示的行上停止。将鼠标悬停在“停止运行”上然后查看它设置为什么。尝试了之后,StopRunning值始终为false。将其作为新问题发布,以便每个人都能看到代码。再次感谢JNevill,你真是一个传奇!
Sub AutoOn()
call macro1
call macro2
call macro3
If Not StopRunning Then Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"
end sub