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

时间:2018-09-11 14:38:23

标签: excel-vba

我需要知道是否可以每天早上7:00执行宏。

这将通过宏还是通过一些视觉基本组件来完成?

2 个答案:

答案 0 :(得分:1)

我知道有几种方法可以做到,但这两种都不是完美的。

第一个是VBA中的instance.get('/s/ioedmud5dbc2bnu/1100.%20mobi.jpg?dl=1').then(...).catch(...); 方法(文档here)。此方法将安排另一种方法在特定时间运行。我尚未彻底测试此功能,所以我不知道是否在excel重新启动甚至关闭工作簿时都保留时间表。

另一个选项是Windows Task Scheduler(感谢Mistella)。您可以在任务计划程序中设置基本任务,以在给定的时间以给定的时间间隔在excel中打开excel中的特定工作簿,并使您希望在工作簿的Application.OnTime事件中运行代码。在该事件中,您可以检查时间。如果时间与指定的任务计划程序时间足够接近,则可以执行所需的工作,保存工作簿并关闭它,而无需用户干预。

答案 1 :(得分:0)

Workbook_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 Task Scheduler运行.vbs)即可。