【发布时间】:2013-02-24 16:31:54
【问题描述】:
我已经使用任务计划程序以及 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
【问题讨论】:
-
欢迎来到Stack Overflow。在写得很好的第一个问题上+1。您是在 XP 或 Win7(不是服务器)上运行它吗?当你在没有
myExcelWorker.DisplayAlerts = False的情况下调试它时,excel 是否会提示发生了什么? -
它在我的旧 Windows 98 SE 计算机上运行。它根本没有显示任何错误信息。但是黑色窗口只是闪烁,我不知道如何捕获错误。我将 DisplayAlerts=False 与其他 UI 行一起注释掉,结果始终完全相同。
-
在Excel宏的vb脚本中是否失败?您验证路径是否正确?
-
嗯,路径是正确的。什么都没有改变,比如我没有移动我的文件。我想,它没有进入 Excel,但我不知道如何确定。
-
我照你说的做了。它到了这一行:myExcelWorker Run strMacroName。我相信它开始运行我的程序。一旦启动,我的程序将运行几个小时。所以我在vbs中没有看到任何错误。我想做的另一件事是我为 cscript 和我的 RunExcel.vbs 发出了运行命令。然后黑色窗口闪烁约 1 秒。
标签: excel vba vbscript scheduled-tasks wsh