使用Excel vba宏通过Windows计划任务运行

Jez*_*Jez 6 excel vba scheduled-tasks excel-vba

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

我在子例程和workbook_open中都使用了这一行 Application.OnTime TimeValue("22:00:00"), "ExportOpenJobs"

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

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

我的问题是Windows任务计划程序在设置的时间运行,在查看任务历史记录后,我可以看到任务已启动/已完成,操作已启动/已完成,通常需要大约50分钟才能完成,但是当我检查数据库时Excel VBA没有跑了.

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

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

Sea*_* W. 8

您好我要做的是创建此.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
Run Code Online (Sandbox Code Playgroud)

Application.Run方法(Excel)

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

对于任务的Action部分,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\