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)