![](/img/trans.png)
[英]How to get an existing range name from an Excel worksheet using c# Excel.Interop?
[英]Check if a Range has a Name using Excel.Interop in C#
我目前正在使用C#和Excel Interop開發Excel插件應用程序。 我正在遍歷一系列單元格。 我正在嘗試檢查一個單元是否命名。
但是,當我嘗試添加if條件時,如果未命名范圍,則會引發異常。 例外是
System.Runtime.InteropServices.COMException(0x800A03EC):來自HRESULT的異常:0x800A03EC
這有點奇怪。
if(r.Name == null)
{
item.name="Not named";
} else
{
item.name = r.Name.Name;
}
如果條件本身拋出異常,為什么Range對象未命名時不返回null?
有沒有一種方法可以檢查范圍是否具有名稱。 我似乎沒有找到其他解決方案。
在這方面的任何幫助表示贊賞。
謝謝
如果條件本身拋出異常,為什么Range對象未命名時不返回null?
這就是Excel對象模型的工作方式,如果您嘗試從VBA代碼訪問Range.Name,則會得到相同的結果。
您可以選擇:
捕獲異常,例如
public string GetRangeName(range As Range) { try { var name = range.Name; if (name == null) return null; // Won't happen in the current version of Excel, but who knows for a future version return name.Name; } catch(COMException) { return null; } }
或者,遍歷工作表及其工作簿的Names
集合,以查找引用您感興趣的單元格的一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.