Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-Application.OnTime可以在夜间工作,但不能在周末工作_Excel_Vba - Fatal编程技术网

Excel VBA-Application.OnTime可以在夜间工作,但不能在周末工作

Excel VBA-Application.OnTime可以在夜间工作,但不能在周末工作,excel,vba,Excel,Vba,我有一份报告,我想在周一早上做,所以每周的报告都准备好了,等办公室开门的时候。宏运行主报表,保存不同版本的报表,并打开和更新多个Access数据库 我使用Application.OnTime来实现自动化。我已经测试了数周,当我设置它在夜间运行(即第二天)时,它工作正常,但我无法在星期一上午(从星期五下午离开时)让它工作 以下是计时代码: Private Sub Workbook_Open() Application.OnTime TimeValue("05:00:00"), "Timer"

我有一份报告,我想在周一早上做,所以每周的报告都准备好了,等办公室开门的时候。宏运行主报表,保存不同版本的报表,并打开和更新多个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子文件,然后将工作簿保持打开状态


感谢一旦
OnTime
事件发生,并且调用了
计时器
子例程,并且您选择了不执行任何操作-到此结束

实际上,您需要在周六设置一个新的
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

你的日期设置正确吗?我不确定,代码一夜之间就可以正常工作了。YowE3K在下面的回答似乎是可行的。这很有道理,谢谢。我会在周末测试它,然后回来报告。呃,不,也许我是在装傻,但我怎么能在两天前测试它是否能工作呢?只是记得回来报告。成功了。谢谢你