【发布时间】:2014-01-17 01:31:17
【问题描述】:
编辑:原来只有在 Outlook 实例已经运行时才会出现此错误。
这是一个奇怪的错误。我设置了一个宏,每天早上下载报告后自动执行。
宏由这个 VBS 代码执行:
Dim xl
Set xl = CreateObject("Excel.Application")
Dim WshShell, strCurDir
Set WshShell = CreateObject("WScript.Shell")
strCurDir = WshShell.CurrentDirectory
xl.Application.Workbooks.Open(strCurDir & "\TodaysScript.xlsm")
xl.Application.Visible = False
xl.Application.run "'TodaysScript.xlsm'!autoOpen"
xl.DisplayAlerts = False
xl.Quit
Set xl = Nothing
Set WshShell = Nothing
autoOpen 是我正在运行的宏的名称(我故意避免使用Auto_Open)
当我运行脚本时,一切都很有趣,但是当脚本通过schtasks 执行时,它会返回这个错误:
调试的时候显示在这里:
我读了很多,知识库文章没有帮助。
如果我双击我的VBS并正常执行它会如何工作,但我通过schtasks执行它的那一刻会出现错误。
这里是 schtask 查询
schtasks /create /tn "Reports" /tr %file% /sc weekly /st 10:00:00 /d MON,TUE,WED,THU,FRI /V1
我还可以补充一下:这是昨天工作的,但现在它在我的电脑和大学的电脑上都停止工作了。
【问题讨论】:
-
这可能是权限问题吗?不完全属于这些语言的领域,但我编写了要由 SQL Server 代理作业执行的批处理文件,如果我只是双击 .bat 文件,它运行良好,但是当实际作业运行它时,它为运行任务的帐户提供权限错误。
-
我也是这么想的。如何以编程方式更改执行 VBA 的用户?
-
我也认为这是一个权限问题。给
schtasks管理员权限来执行脚本就OK了。 -
schtasks中使用的帐户是否在域中具有有效的电子邮件帐户?我尝试使用没有关联电子邮件的帐户运行 vbs,它会打开 Outlook 帐户设置向导。您是否有用于自动化的帐户(或用于 IT 目的的备用电子邮件启用帐户)? -
是的,它确实有一个有效的电子邮件帐户。这很奇怪,因为它昨天还在工作,尽管我们所在的网络具有可能会改变某些环境因素的推送政策。