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)
我要在这里进行一个疯狂的猜测。
“它在我运行 cscript 时起作用,但在任务运行它时不起作用”让我认为这是一个权限问题。当您设置 Windows 计划任务时,您应该能够将其设置为以特定用户身份运行(还可以设置在用户未登录时是否运行)。我不确定 Win 98 的情况,但是你能找出任务属性的含义吗?当您自己运行代码时,系统会使用您的权限,并且计划任务可能正在使用无权运行该代码的用户。
如果你什么都不改变,怎么会发生这种事呢?我唯一能想到的是:
此外,某些防病毒产品会停止使用某些 vbscript。您是否可能在它停止工作之前安装任何新的东西?
要检查错误可能来自哪里(希望这能起作用,因为我对 Win98 机器不是很熟悉):
C:\>cscript <dir>\myscript.extension \I注意,\I是交互模式,应该显示错误(请参阅此处了解更多信息)我真的希望这有帮助。我本想把它放在评论中,但文字太多了。