private void excelEvents_SheetChange(object sender, object sheet, object range) { Excel.Worksheet changedSheet = null; Excel.Range changedRange = null; try { changedSheet = sheet as Excel.Worksheet; if (SheetChangeEvent && changedSheet.ConnectedToDb()) { changedRange = range as Excel.Range; changedSheet.AddChangedRow(changedRange); } } catch (Exception ex) { Console.Write(ex.Message); } finally { //if (changedSheet != null) Marshal.ReleaseComObject(changedSheet); // Disposed in DatabaseExplorerPane.tvTables_NodeMouseDoubleClick } }