2
我的應用程序是另一個應用程序的插件(DLL)。從我的應用程序啓動Excel,然後只需打開工作簿並保存。Excel的實例不關閉,因爲我的應用程序是一個插件
Dim oExcel As Object = CreateObject("Excel.Application")
oExcel.Visible = False
oExcel.DisplayAlerts = False
Dim oWorkBook As Object = oExcel.Workbooks.Open(excelFileName)
oWorkBook.Save()
oWorkBook.Close(True)
oExcel.Quit()
oWorkBook = Nothing
oExcel = Nothing
的問題是,直到主應用程序(一次我的應用程序是另一個應用程序的插件)關閉我創建的Excel實例不會關閉。
除了殺死進程之外,我還有什麼可以做的嗎?我試過System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)並調用垃圾回收器無濟於事。
TIA。
我有一個類似的問題,發現Excel發起了一個單獨的會議。不要只是退出創建的會話,而是嘗試查找所有會話並關閉。看到這個[鏈接](http://stackoverflow.com/questions/3526228/vba-script-to-close-every-instance-of-excel-except-自己)一點點的指導。 –
謝謝,波特蘭。但是,在這種特殊情況下,當主應用程序關閉時,Excel實例會得到釋放。 我看着提議的代碼,但是如果Excel已經打開了呢?我不想關閉所有實例。 下面是我現在要做的,我在啓動Excel之前循環遍歷所有Excel進程,然後在啓動後循環遍歷所有進程以找到我創建的進程,然後在我的過程結束時將其終止。但這並不會讓我感覺良好。認爲會有另一種方式。 – Atchoum