Excel中的VBA代码在通过Scheduler触发时不运行

所以这个WinServer 2012 R2 64bit的设置是:

Windows任务计划程序 – > cscript .vbs文件 – >打开excel并运行主模块中的一个子

当我双击.vbs文件,但是当我通过任务计划程序触发.vbs时,excel会打开,但不加载文件或运行子文件(不知道是哪个文件),后台运行良好。 该任务在具有该计算机上的pipe理权限的域用户下运行。 当我尝试点击.vbs时,我使用相同的用户

正在运行的代码,依次为:

任务计划程序启动:

C:\ WINDOWS \ system32 \ cscript.exe“D:\ xyz \ trigger.vbs”

.vbs确实:

Option Explicit Dim xlApp, xlBook, xlsheets, xlcopy Set xlApp = CreateObject("Excel.Application") xlapp.Interactive = False xlapp.DisplayAlerts = False xlapp.AskToUpdateLinks = False xlapp.AlertBeforeOverwriting = False Set xlBook = xlApp.Workbooks.Open("D:\xyz\excelfile.xlsm") On Error Resume Next Call xlBook.Application.Run("Main.Extrnal_Trigger") xlbook.Saved = True xlBook.Close xlApp.Quit Set xlBook = Nothing Set xlcopy = Nothing Set xlApp = Nothing WScript.Quit(1) 

Excel代码:

 Sub Extrnal_Trigger() Application.EnableEvents = False Application.AskToUpdateLinks = False Application.DisplayAlerts = False Application.AlertBeforeOverwriting = False Call update_button Call MainProgram Call ReportSave End Sub 

如何找出.vbs或excel挂起的位置,为什么? 另一台机器上的一个非常类似的设置运行没有麻烦。 这里引用的代码实际上是相同的。

我意识到有几个不好的做法(如不清理xlapp设置),但我想清理之前运行的过程。


/编辑:删除

 On Error Resume Next 

从.vbs不显示错误。


/ edit2:我试着尽可能回复。

 Option Explicit Dim fso, f, s, log Set fso = CreateObject("Scripting.FileSystemObject") Set log = fso.CreateTextFile("D:\xyz\TESTlog.txt") log.WriteLine "before fso" Set f = fso.GetFile("D:\xyz\excel.xlsm") s = f.Path & " " s = s & "Created: " & f.DateCreated & " " s = s & "Last Accessed: " & f.DateLastAccessed & " " s = s & "Last Modified: " & f.DateLastModified log.WriteLine "after fso" log.writeline "fso content" log.writeline s 

这是由任务计划程序通过cscript.exe触发的。 我将尝试修改以logging调用excel文件的过程。


/ edit3:debugging显示这个

 Set xlBook = xlApp.Workbooks.Open("D:\xyz\excel.xlsm") 

从未发生过。 我拿出错误号码,并得到这个电话的错误1004。 仍然不知道是什么问题,但至less我现在得到了一个错误号码。


/ edit4:

尝试运行此计划时出现错误1004,因为计划的任务仍然存在。 当我通过双击.vbs运行它时,一切正常。

关键是要创build这两个文件夹

C:\ WINDOWS \ system32 \设置\ systemprofile \桌面

C:\ WINDOWS \ Syswow64资料\ CONFIG \ systemprofile \桌面

当这些文件夹不存在时,Excel显然在非交互模式下运行有问题(不知道为什么)。 创build它们通过vbs打开工作簿时摆脱了1004错误。