VBA代码一次结束宏

时间:2015-07-14 19:37:45

标签: excel vba excel-vba

我一直在寻找一种方法,试图强迫宏停止在下午1:15运行。我找到了会在某个时间关闭工作簿的东西,但没有任何东西可以保持工作簿打开并停止宏。我相信它与Application.OnTime "13:15:00"功能有关,但我不知道如何在下午1:15停止宏。

这就是我的excel工作簿运行的原因: 首先,当我打开工作簿时,这就开始了:

Private Sub Workbook_Open()
    If Time > TimeSerial(6, 45, 0) Then
    Call TimeStamp
    Else
    Application.Wait "06:45:00"
    Call TimeStamp
End Sub

然后将启动TimeStamp宏,它使用这些全局变量和编码每15分钟运行一次:

Option Explicit
Public RunWhen As Double
Public Const cRunIntervalSeconds = 900 ' 15 minutes
Public Const cRunWhat = "TimeStamp"  ' the name of the procedure to run

Sub StartTimer()
    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True

此部分之后是我的TimeStamp宏,其结尾为:Call StartTimer以安排从当前时间起15分钟的下一个运行时间。

1 个答案:

答案 0 :(得分:1)

这将在下午1点15分之后停止安排下一次运行

If Time < TimeSerial(13,15,0) Then

    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True

End If
相关问题