VBScript代码保持Excel文件打开

我有一个VBScript代码来打开一个Excel文件,运行一个macros并closures它。 精细。

现在,我想改变的唯一事情就是打开文件。

如果我删除了两行代码xlApp.activewindow.close和xlApp.Quit,那么工作簿和应用程序仍然是closures的,但它们在后台保持打开状态(Excel进程在任务pipe理器中仍处于活动状态)。 因此,通过再次调用脚本(这正是我想要做的),稍后在同一个文件中重新运行macros是不可能的。

为什么?

这里是代码:

Option Explicit On Error Resume Next MyTest Sub MyTest() Dim xlApp Dim xlBook Dim fpath Dim fname ' Excel application running? if not, open Excel On Error Resume Next Set xlApp = GetObject(, "Excel.Application") If xlApp <> "Microsoft Excel" Then Set xlApp = CreateObject("Excel.Application") End If Err.Clear ' correct Excel file open? if not, open it fpath = "D:\Desktop\" fname = "MyTest.xls" xlApp.Workbooks(fname).Activate If Err = 0 Then ' no error, so it has been possible to activate the workbook Set xlBook = xlApp.Workbooks(fname) Else ' unable to activate, so workbook was not open -> open it now Set xlBook = xlApp.Workbooks.Open(fpath & fname, 0, True) End If Err.Clear ' now run the desired macro in the excel file xlApp.Run "HelloWorld" ' WANT TO CHANGE THIS xlBook.saved = True xlApp.activewindow.close ' AND THIS xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub 

你只需要让你的新的Excel实例可见。 在创build之后立即执行此操作:

 xlApp.Visible = True 

这行代码将closures您当前激活的工作簿(到目前为止,它是D:\Destop\MyTest.xls );

 xlApp.activewindow.close 

这一行将退出Excel应用程序;

 xlApp.Quit