从任务计划程序启动excel工作,现在失败

Ros*_*eAb 9 vbscript excel vba wsh scheduled-tasks

我已经使用Task Scheduler和cscript和vbscript运行我的excel 2000 vba程序大约一年了.几天前它停止了工作.我可以手动运行程序.每当任务计划程序启动它时,黑色窗口显示约1-2秒然后关闭.

我试过评论错误处理,但我总是得到相同的结果.我尝试过显示,MsgBoxes但结果仍然相同.

我在你的论坛上找到了一个更简单的方法,我尝试了相同的结果.

那么我需要做些什么来调试呢?

这是我在这个论坛上尝试的代码:

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
'~~> Change Path here
Set xlBook = xlApp.Workbooks.Open("C:\My Documents\___Stocksfilter.xls", 0, True)
xlApp.Run "A_Pick"
xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)

这是我一直在使用的代码:

'Script to start my filter.xls program with named macro
'MsgBox "In RunExcel"

' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application") 

' Disable Excel UI elements
myExcelWorker.DisplayAlerts = False
myExcelWorker.AskToUpdateLinks = False
myExcelWorker.AlertBeforeOverwriting = False
myExcelWorker.FeatureInstall = msoFeatureInstallNone

' Open the Workbook 
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = "C:\My Documents\___Stocks\filter.xls"

'MsgBox "Opening filter"

on error resume next 
Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB)
if err.number <> 0 Then
    ' Error occurred - just close it down.
    MsgBox "open Error occurred"
End If
err.clear
on error goto 0 

'MsgBox "Running macro"

Dim strMacroName
strMacroName = "A_Pick"
on error resume next 
' Run the macro
myExcelWorker.Run strMacroName
if err.number <> 0 Then
    ' Error occurred - just close it down.
    MsgBox "run macro Error occurred"
End If
err.clear
on error goto 0 

' Clean up and shut down
Set oWorkBook = Nothing
myExcelWorker.Quit
Set myExcelWorker = Nothing
Set WshShell = Nothing
Run Code Online (Sandbox Code Playgroud)

Jos*_*eph 2

我要在这里进行一个疯狂的猜测。

它在我运行 cscript 时起作用,但在任务运行它时不起作用”让我认为这是一个权限问题。当您设置 Windows 计划任务时,您应该能够将其设置为以特定用户身份运行(还可以设置在用户未登录时是否运行)。我不确定 Win 98 的情况,但是你能找出任务属性的含义吗?当您自己运行代码时,系统会使用您的权限,并且计划任务可能正在使用无权运行该代码的用户。

如果你什么都不改变,怎么会发生这种事呢?我唯一能想到的是:

  1. 计划任务使用的用户已不存在或权限已更改
  2. 用户有一个密码过期日期,并且最近已过期
  3. 如果计划任务使用您的用户名,您是否将密码保存在任务属性中,然后最近更改了密码,但没有更新计划任务的密码?

此外,某些防病毒产品会停止使用某些 vbscript。您是否可能在它停止工作之前安装任何新的东西?

要检查错误可能来自哪里(希望这能起作用,因为我对 Win98 机器不是很熟悉):

  1. 找出哪个用户设置来运行计划任务
  2. 以另一个用户身份启动命令提示符(我认为是 Shift+右键单击 --> 运行为... [注意,我不了解 Windows 98,所以我祈祷您可以执行此操作])
  3. 从命令提示符运行 cscript:(C:\>cscript <dir>\myscript.extension \I注意,\I是交互模式,应该显示错误(请参阅此处了解更多信息

我真的希望这有帮助。我本想把它放在评论中,但文字太多了。