Excel 是否可以每天一次运行一个宏?

Excel 是否可以每天一次运行一个宏?,excel,vba,Excel,Vba,我需要知道是否有可能在每天早上7:00执行宏 这是通过宏还是通过一些visual basic组件来实现的?我知道有几种方法可以实现这一点,但这两种方法都不完美 第一个是VBA(文档)中的Application.OnTime方法。此方法将计划在特定时间运行另一个方法。我还没有完全测试这个函数,所以我不知道是否会在excel重新启动甚至工作簿关闭时保留时间表 另一个选项是Windows任务计划程序(谢谢)。您可以在任务计划程序中设置基本任务,以便在给定时间、给定间隔在excel中打开特定工作簿,并在

我需要知道是否有可能在每天早上7:00执行宏


这是通过宏还是通过一些visual basic组件来实现的?

我知道有几种方法可以实现这一点,但这两种方法都不完美

第一个是VBA(文档)中的
Application.OnTime
方法。此方法将计划在特定时间运行另一个方法。我还没有完全测试这个函数,所以我不知道是否会在excel重新启动甚至工作簿关闭时保留时间表


另一个选项是Windows任务计划程序(谢谢)。您可以在任务计划程序中设置基本任务,以便在给定时间、给定间隔在excel中打开特定工作簿,并在工作簿的
open
事件中运行所需的代码。在该事件中,您可以检查时间。如果时间足够接近指定的任务计划程序时间,则可以执行需要执行的工作、保存工作簿并关闭它,而无需用户交互

工作簿打开(事件)的问题在于,如果您仍然需要在白天手动操作工作簿,则会启动宏,这可能是错误源,具体取决于宏的操作

或者,您可以使用上面提到的Windows任务计划程序来运行VB脚本,该脚本将在工作簿中运行宏

  Set xlApp = CreateObject("Excel.Application")
  xlApp.DisplayAlerts = False 'turn off alerts
  xlApp.Application.Visible = False  'keeps Excel hidden
  Set xlBook = xlApp.Workbooks.Open("C:\MyPath\MyWorkbook.xlsm", 0, False)
  xlApp.Run "MACRO_NAME"
  xlBook.Save
  xlBook.Close
  xlApp.Quit
  Set xlBook = Nothing
  Set xlApp = Nothing

只需在记事本中键入脚本并另存为.vbs(然后让Windows任务计划程序运行.vbs)。

对于我遇到的类似情况,我使用Windows任务计划程序在
workbook\u open()
事件中打开了一个特定的工作簿,其中包含我想要运行的宏。