excel - 从任务计划程序启动 excel 可以正常工作,但现在失败了

标签 excel vba vbscript scheduled-tasks wsh

我已经使用任务计划程序、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 的情况,但是你能找出任务属性的含义吗?当您自己运行代码时,将使用您的权限,并且计划任务可能正在使用无权运行该任务的用户。

如果您没有进行任何更改,怎么会发生这种情况?我唯一能想到的是:

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

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

检查错误可能来自何处(希望这能起作用,因为我对 Win98 机器不太熟悉):

  1. 查明哪个用户设置为运行计划任务
  2. 以其他用户身份启动命令提示符(我认为是 Shift+右键单击 --> 运行为... [注意,我不了解 Windows 98,所以我祈祷您可以执行此操作] )
  3. 从命令提示符运行 cscript:C:\>cscript <dir>\myscript.extension \I (请注意, \I 是交互模式,应该显示错误 ( see here for more info )

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

关于excel - 从任务计划程序启动 excel 可以正常工作,但现在失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305707/

相关文章:

excel - VBA 中的 checkout 工作簿

arrays - 如何在VBA中将简单字符串转换为字节数组?

excel - 删除后识别为空 "Range"

regex - 避免删除下划线和数字

vbscript - 如何使用 VBscript 从值列表中获取唯一值?

vbscript - 如何在 VBS 中使用默认值参数定义函数

excel - 从 MS Access 中将交叉表查询结果导出到 Excel

arrays - VLOOKUP() 使用数组的替代方法

arrays - 数组未在 For 循环中返回答案

vba - 在带有变量最后一行的vba中按升序排序