我有一个只有一行长的 .bat 文件,它调用一个 vb 脚本,该脚本专门打开一个 excel 文件并运行一些宏:
cscript priordays.vbs "C:\PATHANME\FILENAME.xlsm"
当我双击运行它时,它可以正常运行。
当我在任务计划程序中运行时,它显示已成功运行(代码 0x0),但脚本未执行。我已将其设置为以最高权限运行,无论用户是否登录、唤醒机器等。仍然没有结果。
对于那些询问 vb 脚本中有什么的人来说,它是:
Dim arts, objExcel
Set args = WScript.ARguments
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open args(0)
objExcel.visible = True
objExcel.Run "Macro1"
objExcel.Run "Macro2"
objExcel.Run "Macro3"
objWorkbook.Close
objExcel.Quit
我在这个网站的其他地方找到了该代码以及使用 .bat 文件的说明。如果有办法从脚本运行所有内容,并尝试从任务计划程序启动脚本,我也可以这样做。
答案1
正如@Megamorf 在他的评论中所说,这确实很难做到。因此,您最好使用启动宏和预定的启动来实现您的目标。
它是如何工作的?您为 Excel 创建一个启动宏,该宏将在 Excel 每次启动时启动。
如果您将其与使用计划开始相结合在来自以下问题的命令:使用 Windows 调度程序运行 bat 文件
对于你来说,AT 命令将是
at 20:30 /every:M,T,W,Th,F,S,Su "excel.exe"
这将在每天晚上 8:30 启动 Excel。Excel 将运行启动宏。
如何取消计划任务
- 单击“开始”,指向“程序”,指向“附件”,然后单击“命令提示符”。
在命令提示符下,键入以下行,然后按 ENTER 显示当前正在运行的服务列表:
净启动
如果列表中未显示任务计划程序,请键入以下行,然后按 ENTER:
网络启动“任务计划程序”
在命令提示符下,键入以下行(使用适合您情况的参数),然后按 ENTER:
在 \computername id /delete | /delete/yes
\\computername 是网络中的计算机。您不必填写该内容。