使用Excel VBAmacros来运行Windows计划任务

我有一个Excel电子表格,我已经设置了一个计时器来运行代码到数据库中。 如果电子表格是打开的,现在时间是在时间段内设置的时间,那么它将数据导出到数据库中

我在我的子程序和workbook_open Application.OnTime TimeValue("22:00:00"), "ExportOpenJobs"

这对电子表格打开时非常有用,但我希望能够通过Windows计划任务进行设置。

我正在使用Windows Server 2012作为我的主机PC和文件的存储位置。 在任务计划程序中,我将“启动程序的操作”和“程序”脚本设置为位置和实际的* .xlsm文件以及任务的开始时间。 我在Excel VBA中的时间前30秒设置此任务。

我的问题是,Windows任务计划程序在设定的时间运行,看任务历史后,我可以看到任务开始/完成和行动开始/完成往往需要大约50分钟完成,但是当我检查数据库的Excel VBA hasn不会跑。

如何让我的任务计划程序运行Excel VBA代码?

在Windows Server中,你是否真的需要安装Excel,因此应该在另一台机器上完成?

您好,我会做的就是创build这个.VBS文件,然后使用Windows任务计划程序以所需的时间间隔执行此VBS文件。

 Set fso = CreateObject("Scripting.FileSystemObject") curDir = fso.GetAbsolutePathName(".") Set myxlApplication = CreateObject("Excel.Application") myxlApplication.Visible = False Set myWorkBook = myxlApplication.Workbooks.Open( curDir & "\myTest.xlsm" ) 'Change to the actual workbook that has the Macro myWorkBook.Application.Run "Module1.HelloWorld" 'Change to the Module and Macro that contains your macro myxlApplication.Quit 

Application.Run方法(Excel)

此示例确实要求将Excel安装到运行计划任务的主机上。 如果该主机是服务器或台式计算机是您的select。

Windows任务计划程序应该这样完成任务的“操作”部分:

Action: Start a program

Program/script: C:\Windows\SysWOW64\cscript.exe

Add arguments (optional): C:\Path_to_your_vbs\Your.vbs

Start in (optional): C:\Path_to_your_vbs\