如果我有一个对
示例:
Worksheet
的引用,并关闭它的父级Workbook
,那么该引用不会消失。但我无法弄清楚如何检查以确保这些工作表不存在。检查null
并不起作用。示例:
Workbook book = Globals.ThisAddIn.Application.ActiveWorkbook;
Worksheet sheet = (Worksheet)book.Worksheets[1]; // Get first worksheet
book.Close(); // Close the workbook
bool isNull = sheet == null; // false, worksheet is not null
string name = sheet.Name; // throws a COM Exception
当我尝试访问该表格时,出现了以下异常:
System.Runtime.InteropServices.COMException was caught
HResult=-2147221080
Message=Exception from HRESULT: 0x800401A8
Source=MyProject
ErrorCode=-2147221080
StackTrace:
at Microsoft.Office.Interop.Excel._Worksheet.get_Name()
at MyCode.test_Click(Object sender, RibbonControlEventArgs e) in c:\MyCode.cs:line 413
InnerException:
如果我可以检查工作簿删除事件,这个问题就不成问题了,但是Excel没有提供这样的事件(这真的很恼人)。
有没有一些方便的方法来确保我不使用这些工作表?