VBA – Application.OnTime一夜之间工作,但不是周末

我有一份报告,我想在星期一早上运行,所以每周的报告都准备好了,当办公室打开。 macros运行一个主报告,保存它的不同版本,并打开并更新几个Access数据库。

我使用Application.OnTime来自动执行此操作。 我已经testing了几个星期,并且在我把它设置成隔夜(即第二天)运行的时候工作正常,但是星期一早上离开星期五下午,我还没有能够工作。

这里是时间码:

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子,然后打开工作簿。

谢谢

一旦OnTime事件发生,并且你的Timer子程序已经被调用,并且你已经select了什么都不做 – 那就结束了。

你实际上需要在星期六设置一个新的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