Question

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?

Était-ce utile?

La solution

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)

Autres conseils

First check if object is initialized, then you can safely dispose it.

If objExcel isnot nothing then objExcel.dispose()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top