要获取单元格的命名范围,这是我的代码。如果单击的单元格在第一张纸上,则工作正常。但是当我从其他工作表中选择一个单元格时,它只会抛出 Exception from HRESULT: 0x800A03EC Error
在堆栈上看到了类似的问题,但只能从这些帖子中得出结论: 这是我的代码:
Microsoft.Office.Interop.Excel.Workbook _workbook = ThisAddIn.Application.ActiveWorkbook;
Microsoft.Office.Interop.Excel.Range Target = (Microsoft.Office.Interop.Excel.Range)Globals.ThisAddIn.Application.ActiveCell;
foreach (Microsoft.Office.Interop.Excel.Name name in _workbook.Names)
{
Microsoft.Office.Interop.Excel.Range intersectRange = _workbook.Application.Intersect(Target, name.RefersToRange);
if (intersectRange != null)
{
rangeName = name.Name;
break;
}
}
最佳答案
如果范围位于不同的工作表上,则不能在不引发错误的情况下使用 Intersect。在尝试 Intersect()
Parent
属性是否引用同一张工作表
关于c# - 如何查找单元格的命名范围 - VSTO 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753111/