我已经使用Task Scheduler和cscript和vbscript运行我的excel 2000 vba程序大约一年了。几天前它停止了工作。我可以手动运行程序。每当Task Scheduler启动它时,黑色窗口显示约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
答案 0 :(得分:2)
我会在这里猜测。
“它在我运行cscript时有效但在任务运行时没有”让我觉得这是一个权限问题。设置Windows计划任务时,您应该能够将其设置为以特定用户身份运行(并设置是否在用户未登录时运行)。我不确定Win 98,但是你能找到Task属性说的吗?当您自己运行代码时,将使用您的权限,并且计划任务可能正在使用没有运行权限的用户。
如果你没有改变什么,怎么会发生这种情况?我唯一能想到的是:
此外,一些防病毒产品会停止使用某些vbscripts。您是否可以在它停止工作之前安装任何新东西?
要检查错误的来源(希望这可行,因为我对Win98机器不是很熟悉):
C:\>cscript <dir>\myscript.extension \I
(注意,\I
是交互模式,应显示错误(see here for more info)我真的希望这会有所帮助。我会把它放在评论中,但文字太多了。
答案 1 :(得分:2)
解决!首先我做了一个Run命令并使用了wscript。也可以使用cscript / I作为joseph4tw建议,但我不知道。
这向我展示了它无法找到VBScript引擎的错误。一世 在互联网上看,vbscript.dll应该在Windows / System文件中 为我的98电脑。它不存在。我找到了网站www.dll-files.com并下载了该文件。然后我重新启动了。然后我做了一个Run命令来安装它,如下所示:运行regsvr32 vbscript.dll。 它给出了成功的信息,现在它起作用了。
我认为这是恶意软件引起的。我无法从我的98计算机上获取恶意软件,因为我无法运行任何新的防病毒软件。
由于我的新XP计算机,我正在制作磁盘映像并使用Linux恢复光盘。那个linux,我认为将在98上运行,我希望我可以运行防病毒来清理那台计算机。
感谢大家的帮助,因为它让我找到了解决方案。
答案 2 :(得分:0)
我只是遇到了同样的问题。
我制作了一个.bat文件,我在其中将其称为.exe文件。
call filelocation/application.exe
最后,我从任务计划程序操作中调用了.bat文件。
一切正常。