每小时运行大量宏,然后按vba停止

时间:2018-08-22 13:01:17

标签: excel vba

我的代码遇到了两个问题。

按下按钮时,我希望它依次调用3个单独的宏。

v4

我尝试了以下代码:

Sub AutoOn()

call macro1
call macro2
call macro3

end sub

上面的示例应该每10秒运行一次,但是经过测试,它只能运行一次-我错过了什么?

当按下按钮时,我还将如何停止宏的运行,目前我只是在使用:

Private sub AutoOnBtn_Click()

AutoOnCheck.Value = True
Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"

End Sub

会关闭包括表单在内的所有内容,但希望它使表单保持打开状态并仅停止宏。任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

计时器从现在开始倒计时10秒,然后触发宏,仅此而已。

相反,在运行三个宏之后,您必须使用Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"或调用Call AutoOnBtn_Click再次设置计时器。喜欢:

Sub AutoOn()

  call macro1
  call macro2
  call macro3

  If Not StopRunning Then Application.OnTime Now + TimeValue("00:00:10"), "AutoOn"

end sub

关于停止它……您可以设置一个名为“ Stoprunning”的全局变量

(在任何子功能上方):

Public StopRunning as Boolean

然后单击按钮以停止计划的运行:

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