C# 如何查找单元格的命名范围-VSTO引发异常
要获取单元格的命名范围,请输入我的代码。如果单击的单元格位于第一张图纸上,则工作正常。但当我从其他工作表中选择一个单元格时,它只是从HRESULT:0x800A03EC错误中抛出异常 在stack上看到了类似的问题,但Din无法从这些帖子中得出结论: 这是我的密码:C# 如何查找单元格的命名范围-VSTO引发异常,c#,excel,vsto,C#,Excel,Vsto,要获取单元格的命名范围,请输入我的代码。如果单击的单元格位于第一张图纸上,则工作正常。但当我从其他工作表中选择一个单元格时,它只是从HRESULT:0x800A03EC错误中抛出异常 在stack上看到了类似的问题,但Din无法从这些帖子中得出结论: 这是我的密码: Microsoft.Office.Interop.Excel.Workbook _workbook = ThisAddIn.Application.ActiveWorkbook; M
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;
}
}
在我看来,它类似于
Globals。ThisAddIn.Excel
是一个应用程序
对象。它可能与Globals.ThisAddIn.Application
不同。根据使用两个应用程序之间的对象可以触发异常
尝试更改代码以使用一个或另一个应用程序
实例,而不是同时使用这两个实例。在我看来,它类似于Globals。ThisAddIn.Excel
是一个应用程序
对象。它可能与Globals.ThisAddIn.Application
不同。根据使用两个应用程序之间的对象可以触发异常
尝试将代码更改为使用一个或另一个应用程序
实例,而不是同时使用这两个实例。如果范围在不同的工作表上,则无法使用Intersect而不引发错误。添加检查以查看每个范围的父属性是否引用同一工作表,在尝试Intersect()
之前,如果范围位于不同的工作表上,则无法使用Intersect而不引发错误。在尝试使用Intersect()
之前,请添加一项检查,查看每个范围的父属性是否引用同一个工作表。请尝试一种更简单的方法获取名称
如果不是(ActiveCell.ListObject为Nothing),则
MsgBox ActiveCell.ListObject.Name
如果结束请尝试更简单的方法获取名称
如果不是(ActiveCell.ListObject为Nothing),则
MsgBox ActiveCell.ListObject.Name
End If在哪一行抛出异常?我很好奇。互操作首选项是什么?我不记得在我的经验中曾经需要(或看到)过它。那是一个自定义对象。我已经更新了代码来忽略这一点。异常是在哪一行抛出的?我很好奇。互操作首选项是什么?我不记得在我的经验中曾经需要(或看到)过它。那是一个自定义对象。我已经更新了代码以忽略这一点。啊,我看到你在问题中删除了对Globals.ThisAddIn.Excel
的引用。你测试过了吗?啊,我看到你在问题中删除了对Globals.ThisAddIn.Excel
的引用。你测试过了吗?