在excel中运行宏的VBScript会引发错误

时间:2014-11-17 15:39:57

标签: excel vba vbscript

我有一个vbscript打开一个excel工作簿,并在特定日期的特定时间内运行特定的宏。这是

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False

While not (Month(Now()) = 11 and Day(Now()) = 17 and Hour(Now()) = 9 and Minute(Now()) = 1)
Wend

Set xlBook = xlApp.Workbooks.Open("C:\Temp\Property by Peril.xlsm")
xlApp.Application.Run "'Property by Peril.xlsm'!Main"

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

它运行良好,包括打开工作簿和运行宏。但是,在宏运行后立即出现错误

Microsoft VBScript runtim error: Unknown runtime error   (on line 16)

并且脚本的其余部分不会被执行。

有什么想法/帮助吗?

2 个答案:

答案 0 :(得分:1)

尝试删除语句以从宏关闭工作簿并将其添加到VBScript。另外,不要忘记退出应用程序对象,否则隐藏的Excel实例将在内存中保留,因为当脚本终止时它不会自动丢弃。

...
xlApp.Application.Run "'Property by Peril.xlsm'!Main"

xlBook.Close False
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing
...

参数False将阻止保存对工作簿的更改。如果您希望自动保存更改,请将其更改为True

答案 1 :(得分:0)

以下代码在我的系统上成功运行。

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False

Set xlBook = xlApp.Workbooks.Open("C:\Temp\Property by Peril.xlsm")
xlApp.Application.Run "Main"

xlBook.Close False
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit