在Excel中运行macros的VBScript会引发错误
我有一个VBScript,打开一个Excel工作簿,并在特定的一天在特定的时间内运行一个特定的macros。 这里是
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
它运行良好,包括工作簿的开放和macros的运行。 但是,macros运行后立即出现错误
Microsoft VBScript runtim error: Unknown runtime error (on line 16)
而脚本的其余部分不会被执行。
任何想法/帮助?
尝试删除该语句以从macrosclosures工作簿并将其添加到VBScript。 另外,不要忘记退出应用程序对象,否则隐藏的Excel实例会一直留在内存中,因为在脚本终止时它不会自动丢弃。
... xlApp.Application.Run "'Property by Peril.xlsm'!Main" xlBook.Close False xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing ...
参数False
将防止对工作簿的更改进行保存。 如果您想要自动保存更改,请将其更改为True
。
以下代码在我的系统上成功运行。
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