无法按计划任务运行批量启动 Excel

无法按计划任务运行批量启动 Excel

我有以下以前手动运行的 Skript:

set DIR="X:\SYSTEM\MAKROS"
X:
cd %DIR%
start /wait EXCEL.EXE /e-GENERATE_REPORTS BSYSTEM.XLA

手动启动时,它工作正常。这BSYSTEM.XLA是基于 Excel 的项目管理系统的一部分,因此我无法将文件导出为其他文件格式。

我现在需要每天运行这个脚本。当创建计划任务来运行这个.bat文件时,它根本不起作用。任务在几秒钟内结束(脚本通常需要大约 10 分钟才能完成),并显示上次运行的结果代码,0x1并且任务的历史记录没有显示任何有用的信息: 在此处输入图片描述

我已经尝试创建一个直接运行的任务"C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /e-GENERATE_REPORTS BSYSTEM.XLA但这只会在历史记录中显示错误:

任务计划程序无法在任务“\Allgemein\TMG Bericht”的实例“{1fbeadd0-605b-4fe0-8d96-621281c53519}”中启动操作“C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE”。附加数据:错误值:2147942667。

我也尝试过这样的 vbs 脚本:

set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
set xlBook = xlApp.Workbooks.Open("X:\SYSTEM\MAKROS\BSYSTEM.XLA")
xlApp.Run "GENERATE_REPORTS"
xlBook.Close
xlApp.Quit

但这样我就得到了错误The macro can not be executed. The 'GENERATE_REPORTS' macro may not be available in this workgroup, or all macros have been disabled,但事实并非如此,因为手动调用上述脚本可以正常工作。启动文件的网络驱动器被设置为“受信任位置”。

奇怪的是,当我打开时,BSYSTEM.XLA我看不到任何工作表,只有一个 excel 文件,除了 makro 按钮之外,几乎所有元素都变灰了,当我尝试查看宏时,我什么也看不到。这就是为什么我很难理解start /wait EXCEL.EXE /e-GENERATE_REPORTS BSYSTEM.XLA到底发生了什么……

除了这两个文档之外,我真的找不到有关 Excel 命令行开关的任何有用信息:

我该怎么做才能为上述 btach 脚本提供可编写脚本的替代方案,以便我可以将此命令作为计划任务运行,或者我该怎么做才能修复 vbs?

答案1

您的 VBA 脚本失败,因为 xlBook 不是支持 Run 方法的正确对象。

尝试

xlApp.Run "GENERATE_REPORTS"

上述替代方案

  • 如果您的宏位于模块中xlApp.Run "BSYSTEM.xls!GENERATE_REPORTS" ,请注意“workbookName”的格式!宏

  • 如果你的宏在工作表中'xlApp.Run "'BSYSTEM.xls'!sheet1.GENERATE_REPORT"

文件扩展名

.xla是 Excel 插件文件格式,您可以尝试将其保存为.xlam这是 xla 的一种启用宏的格式。

代码解析

set xlApp = CreateObject("Excel.Application")创建 Excel 应用程序过程。

xlApp.Visible = True'启用要查看/编辑的申请

set xlBook = xlApp.Workbooks.Open("X:\SYSTEM\MAKROS\BSYSTEM.XLA")打开指定的工作簿在刚刚打开的 Excel 应用程序中。

xlApp.Run "GENERATE_REPORTS"运行宏命令生成报告。

xlBook.Close'关闭工作簿。

xlApp.Quit'结束 Excel 应用程序进程。

答案2

由于使用此命令 Excel 需要显示 UI,因此任务无法在后台运行,当Run whether user is logged on or not在任务属性中选择时会自动出现这种情况。设置此选项后,一切都按预期工作:

在此处输入图片描述

为了能够在服务器重启后执行任务,我启用了自动登录此工具

相关内容