如果我有一个引用Worksheet
并且我关闭它的 parent 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 没有提供一个(这真的很烦人)。
有没有一些方便的方法来确保我不使用这些工作表?