我已经使用任务计划程序、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
这是我一直在使用的代码:
'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
最佳答案
我要在这里进行大胆的猜测。
“它在我运行 cscript 时起作用,但在任务运行它时不起作用”让我认为这是一个权限问题。当您设置 Windows 计划任务时,您应该能够将其设置为以特定用户身份运行(还可以设置在用户未登录时是否运行)。我不确定 Win 98 的情况,但是你能找出任务属性的含义吗?当您自己运行代码时,将使用您的权限,并且计划任务可能正在使用无权运行该任务的用户。
如果您没有进行任何更改,怎么会发生这种情况?我唯一能想到的是:
- 计划任务使用的用户不再存在或权限已更改
- 用户有一个密码过期日期,并且最近已过期
- 如果计划任务使用您的用户名,您是否将密码保存在任务属性中,然后最近更改了密码,但没有更新计划任务的密码?
此外,某些防病毒产品会停止使用某些 vbscript。您是否可能在它停止工作之前安装任何新的东西?
检查错误可能来自何处(希望这能起作用,因为我对 Win98 机器不太熟悉):
- 查明哪个用户设置为运行计划任务
- 以其他用户身份启动命令提示符(我认为是 Shift+右键单击 --> 运行为... [注意,我不了解 Windows 98,所以我祈祷您可以执行此操作] )
- 从命令提示符运行 cscript:
C:\>cscript <dir>\myscript.extension \I
(请注意,\I
是交互模式,应该显示错误 ( see here for more info )
我真的希望这有帮助。我本来想把它放在评论中,但文字太多了。
关于excel - 从任务计划程序启动 excel 可以正常工作,但现在失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305707/