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