I have the following object that later in my code I want to dispose() IF it exists. Is there a way to find if it exists?
Public objExcel As Excel.Application
The best I could come up with is to put the disposal into a try...catch block like this:
Try
objExcel.dispose()
Catch ex As Exception
'do nothing
End Try
Does anyone have a more elegant, less kludgy method?
To dispose of an Excel object completely you must you the marshal class. System.Runtime.InteropServices.Marshal
. You also need to release all the excel objects in reverse order - Worksheet, workbook, excel object. If you don't you can see the Excel process in task manager.
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obgExcel)