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

时间:2013-03-09 00:31:50

标签: excel vba vbscript scheduled-tasks wsh

我已经使用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

3 个答案:

答案 0 :(得分:2)

我会在这里猜测。

它在我运行cscript时有效但在任务运行时没有”让我觉得这是一个权限问题。设置Windows计划任务时,您应该能够将其设置为以特定用户身份运行(并设置是否在用户未登录时运行)。我不确定Win 98,但是你能找到Task属性说的吗?当您自己运行代码时,将使用您的权限,并且计划任务可能正在使用没有运行权限的用户。

如果你没有改变什么,怎么会发生这种情况?我唯一能想到的是:

  1. 计划任务使用的用户不再存在或权限已更改
  2. 用户有密码到期日期,最近已通过
  3. 如果计划任务使用您的用户名,您是否在“任务”属性中保存了密码,然后最近更改了密码,但是没有更新计划任务的密码?
  4. 此外,一些防病毒产品会停止使用某些vbscripts。您是否可以在它停止工作之前安装任何新东西?

    要检查错误的来源(希望这可行,因为我对Win98机器不是很熟悉):

    1. 找出设置为运行计划任务的用户
    2. 以另一个用户身份启动命令提示符(我认为它是Shift +右键单击 - &gt;运行为... [注意,我不知道有关Windows 98的信息,所以我的手指交叉,你可以这样做])
    3. 从命令提示符运行cscript:C:\>cscript <dir>\myscript.extension \I(注意,\I是交互模式,应显示错误(see here for more info
    4. 我真的希望这会有所帮助。我会把它放在评论中,但文字太多了。

答案 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文件。

一切正常。