我编写了一个使用Application.OnTime的宏,如果手动执行该宏,该宏将起作用。我正在尝试使此过程自动化,所以我不必在“此工作簿”或(Private Sub Workbook_Open()中编写Application.OnTime,因为您可以让Windows Scheduler在特定时间打开工作簿,在打开时启动宏,我无法使用调度程序。

因为我无法使用Windows计划程序,所以我将保持工作簿处于打开状态,计时器应刷新我的数据,然后在每天的特定时间调用“我的宏”。

我在哪里放置此代码,以及如何设置自动计时器?

最佳答案

您可以创建一种重复过程。它可能如下所示:

Sub Call_At_3_30()
    'first call appropriate procedure
    Call myProcedure
    'next, set new calling time
    Application.OnTime TimeValue("3:30:00"), "Call_At_3_30"
End Sub


在这种情况下,您将保留主程序的某个位置:

Sub myProcedure
    'your code here
End Sub


在这种情况下,您只需要运行第一个子例程Call_At_3_30一次。但是您需要记住,必须始终打开Excel。

(可选)如果您要在24小时后调用过程,可以通过以下方式更改.OnTime指令:

Application.OnTime Now + 1, "Call_At_3_30"


其他一些修改也是可能的。

10-07 17:20