我有一些excel宏可以在特定的Excel工作表上运行。它会检查一些表格,并根据需要向某些人发送提醒电子邮件。 我希望这个宏每天运行一次,以便每天检查一次表格,这样我就不需要每天都打开工作表并自己动手了。它可以用来做吗?我听说Windows任务调度程序是一个选项,你认为这是一个很好的选择吗?
非常感谢!
答案 0 :(得分:0)
任务计划程序是一个不错的选择。要生成一个新进程并打开一个工作簿,你需要一个命令行指定(1)Excel可执行文件和(2)要打开的工作簿,如
C:\Program Files\Microsoft Office 15\root\office15\Excel.exe "c:\MyWorkbook.xlsm"
我建议在工作簿的完整路径周围使用双引号(但Excel.exe不需要)。
然后在MyWorkbook.xlsm中,您可以编写在工作簿打开时运行的代码,通常在任何标准模块中都是sub Auto_Open
或Sub Workbook_Open()
模块中的ThisWorkbook
。
答案 1 :(得分:0)
我建议使用VBScript文件,并使用任务计划程序使其每天运行。我更喜欢这个,因为那时我可以在一天中的任何时间打开Excel文件并且宏将不会运行(如果你只是想让它仅在那个特定时间更新)。
这是您需要在记事本中编写的VBscript,然后使用[ngClass]
扩展名保存。
*.vbs
然后您可以从命令行设置事件调度程序,如here中所示:
Option Explicit
'On Error Resume Next 'Comment-out for debugging
ExcelMacro
Sub ExcelMacro()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set xlBook =
xlApp.Workbooks.Open("path\to\the\file.xlsm", 0, True)
xlApp.Run "Update" 'Name of your Sub
xlBook.Save
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
您可能会觉得有用的其他链接:
来自超级用户 的 Task Scheduler from the command line?
来自 Linux&的 What is a simple way to schedule a single event to happen at some time in the future?的Unix 强> How to Schedule Programs to Run Automatically in Windows 7?来自 Gizmo的免费软件(TechSupportAlert)