我有一個VBScript代碼來打開一個Excel文件,運行一個宏並關閉它。精細。VBScript代碼保持Excel文件打開
現在,我想改變的唯一事情就是將文件保持打開狀態。
如果我刪除了兩行代碼xlApp.activewindow.close和xlApp.Quit,那麼工作簿和應用程序無論如何都會關閉,但它們在後臺保持打開狀態(Excel進程在任務管理器中仍處於活動狀態)。因此,通過再次調用腳本(這正是我想要做的),稍後不可能在同一個文件上重新運行宏。
爲什麼?
下面是代碼:
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
什麼「不起作用」? –
對不起,如果我不清楚。不起作用的是打開文件。如果我刪除了兩行代碼「xlApp.activewindow.close」和「xlApp.Quit」,那麼工作簿和應用程序仍然是關閉的,但它們在後臺保持打開狀態(Excel進程在任務管理器中仍處於活動狀態)。因此,通過再次調用腳本(這正是我想要做的),稍後不可能在同一個文件上重新運行宏。 – user986990
您還在腳本中保留這兩行嗎?:設置xlBook = Nothing設置xlApp = Nothing – 2011-11-25 09:07:32