我有一个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)
并且脚本的其余部分不会被执行。
有什么想法/帮助吗?
答案 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