VBA - Application.OnTime可以在一夜之间工作但不会在周末工作

时间:2017-06-08 08:37:26

标签: excel vba

我有一份报告,希望在周一早上开始运行,因此每周报告都可以在办公室开放时准备好。宏运行主报告,保存不同版本,并打开和更新多个Access数据库。

我使用Application.OnTime来自动执行此操作。我已经测试了好几个星期了,当我将它设置为隔夜运行(即第二天)时,它运行正常,但是星期一早上从周五下午离开时,我无法让它工作。

这是时间码:

Private Sub Workbook_Open()

Application.OnTime TimeValue("05:00:00"), "Timer"

End Sub


Sub Timer()

If Weekday(Date) = vbMonday Then
Call MainMacro
Else
Exit Sub
End If

End Sub

我运行Application.OnTime子项,然后打开工作簿。

由于

1 个答案:

答案 0 :(得分:2)

OnTime事件发生后,您的Timer子程序被调用,而您选择什么都不做 - 那就结束了。

你实际上需要在星期六设置一个新的OnTime事件,因此它将在星期日运行,然后在星期一运行。

Private Sub Workbook_Open()
    Application.OnTime TimeValue("05:00:00"), "Timer"
End Sub

Sub Timer()
    If Weekday(Date) = vbMonday Then
        MainMacro
    Else
        Application.OnTime TimeValue("05:00:00"), "Timer"
    End If
End Sub