繁体   English   中英

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

[英]Using Excel vba Macro to be run through Windows Schedule Task

我有一个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,因此应该在另一台机器上完成吗?

您好我要做的是创建此.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安装到运行计划任务的主机上。 如果该主机是服务器或台式计算机是您的选择。

对于任务的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\\

在Windows任务计划程序集中:操作:启动程序程序脚本:带有完整引号路径的Excel.exe。 添加参数:要使用引号中的完整路径打开的工作簿

看看这个链接: https//answers.microsoft.com/en-us/windows/forum/windows_8-performance/excel-files-can-not-be-opened-in-task-scheduler-in/aa6cf065-09ac -44d8-b6fb-a2f2ecd9b8cc

我敲了几个小时后为我工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM