代码在某个时间开始,在另一个时间停止

尝试在Excel上设置macros以在特定时间启动并在另一个时间停止时遇到问题。 我试图达到的是:

每隔12分钟在XX处产生一个报告,每天只发生在8:12到11:12之间。 现在我的Excel文件从源下载报告,粘贴值并更新信息,然后自动发布到Web格式。

问题是我一直在使用以下来尝试实现这一点,但一直不成功:

Application.OnTime Now + TimeValue("00:12:00"), "Macro Name", ("23:12:00") 

您需要recursion运行OnTime方法。 像这个ScheduleNext创build一个程序(逻辑可能会更精确一点,但如果需要,你可以解决这个问题…),并在早上运行它。 这将在上午8:12开始你的程序。

 Sub ScheduleNext() 'Schedules the macro to run again in one hour If TimeValue(Now) < TimeValue("08:12:00 AM") Then Application.OnTime TimeValue("08:12:00 AM"), "MyMacro" ElseIf TimeValue(Now) < TimeValue("11:12:00 PM") Then Application.OnTime Now + TimeValue("01:00:00"), "MyMacro" End If End Sub 

现在,在End Sub之前的过程中,调用ScheduleNext 。 这一次,它会安排程序在一个小时内再次运行。

 Sub MyMacro() ''' your code ... Debug.Print "Time is " & TimeValue(Now) ScheduleNext 'Calls the schedule to run again in one hour End Sub