獲取工作表名稱我:從命名範圍的名稱對象
Microsoft.Office.Interop.Excel.Workbook wb;
Microsoft.Office.Interop.Excel.Name name;
有沒有什麼辦法讓工作表名稱命名的範圍是在給定的工作簿,假設我已經得到了命名範圍的名稱對象和WB已經?
獲取工作表名稱我:從命名範圍的名稱對象
Microsoft.Office.Interop.Excel.Workbook wb;
Microsoft.Office.Interop.Excel.Name name;
有沒有什麼辦法讓工作表名稱命名的範圍是在給定的工作簿,假設我已經得到了命名範圍的名稱對象和WB已經?
是,使用父屬性對象層次您的方式工作:
ws = name.RefersToRange.Parent.name;
wb.Names(name).RefersToRange.Parent.Name
Range.Worksheet
是自文檔替代Range.Parent
:
Microsoft.Office.Interop.Excel.Worksheet ws = name.RefersToRange.Worksheet;
string wsName = ws.Name;
還是在一舉:
string wsName = name.RefersToRange.Worksheet.Name;
參考:
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.name.referstorange.aspx
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.worksheet.aspx
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._worksheet.name(v=office.15).aspx
他要求的是工作表名稱,而不是工作表對象。 –
@LanceRoberts:謝謝 - 更新。 –
我需要將其轉換爲一個工作表型之前,我可以叫name屬性。否則,這個工作就像打算。 – Shark
請注意,如果命名範圍未引用工作表,則試圖訪問RefersToRange將失敗並顯示錯誤0x800A03EC。例如,如果名稱設置爲引用「H2」,則RefersTo屬性將返回「=#REF!$ H $ 2」。在這種情況下,RefersToRange將會失敗。在檢查屬性之前,您需要使用Try/Catch包裝器或使用.StartsWith(「=#REF!」)檢查RefersTo字符串。 – Robert