Excel 每小时运行多个宏,按vba按钮停止

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秒运行一次,但是在

我的代码遇到了两个问题

当按下按钮时,我希望它按顺序调用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秒运行一次,但是在测试之后,它只运行一次-我缺少什么

另外,当按下按钮时,如何停止宏的运行,目前我正在使用:

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