Vba 在特定时间运行Excel宏

Vba 在特定时间运行Excel宏,vba,excel,Vba,Excel,我正在尝试设置我的代码,以便每天凌晨4点运行宏。作为一个测试用例,我想检查它是否会运行一个测试宏。我将其设置为在下午4:40运行,但在该时间段不运行(不要获取msgbox)。我真的很感激一些关于如何让它工作的建议,这样我就可以继续实际运行4am宏了 代码: 谢谢 这可以通过两种方法之一来完成 一个将通过windows任务调度程序。您将在其中设置任务以运行Excel.exe yourfile.xlsm。然后将宏绑定到工作簿“工作簿打开”事件,并检查当前时间 转到任务计划程序,右键单击“创建基本任务

我正在尝试设置我的代码,以便每天凌晨4点运行宏。作为一个测试用例,我想检查它是否会运行一个测试宏。我将其设置为在下午4:40运行,但在该时间段不运行(不要获取msgbox)。我真的很感激一些关于如何让它工作的建议,这样我就可以继续实际运行4am宏了

代码:


谢谢

这可以通过两种方法之一来完成

一个将通过windows任务调度程序。您将在其中设置任务以运行Excel.exe yourfile.xlsm。然后将宏绑定到工作簿“工作簿打开”事件,并检查当前时间

转到任务计划程序,右键单击“创建基本任务…”。为任务命名,然后单击“下一步”。选择一个触发器(在这里提到的情况下每天),然后单击下一步。设置时间和重复周期,然后单击下一步。在操作中,选择“启动程序”,然后单击下一步。在“程序/脚本”文本框中,浏览Excel文件并单击“下一步”(将其他文本框留空)。点击Finish。我刚在我的电脑上试用过,它很管用

使用代码

Private Sub Workbook_Open()
    Application.OnTime TimeValue("04:40:00"), "MyMacro"
End Sub

Sub MyMacro()
    Dim rtn As Integer
    rtn = MsgBox("Good to Go!", vbOKOnly + vbInformation, "GTG")
End Sub
使用代码时要记住的事项:
您需要确保excel对应用程序保持打开状态。在工作时,excel不会被冻结/绑定。将其放入工作簿打开事件或类似事件中,以自动运行它

无论哪种方式: 确保您的宏设置始终处于启用状态,因为这将确保每次打开工作簿时,宏都会在没有任何通知或确认的情况下运行。

要执行此操作
Excel选项>信任中心>信任中心设置(按钮)>宏设置>启用所有宏>确定

此代码在模块中的何处?您需要在计划时间中包含日期。尝试Today()+TimeValue(…第二种方法对我很有效,但请确保sub
Workbook\u Open()
进入ThisWorkbook对象,sub
MyMacro
进入模块。
Private Sub Workbook_Open()
    Application.OnTime TimeValue("04:40:00"), "MyMacro"
End Sub

Sub MyMacro()
    Dim rtn As Integer
    rtn = MsgBox("Good to Go!", vbOKOnly + vbInformation, "GTG")
End Sub