问题
I have:
Microsoft.Office.Interop.Excel.Workbook wb;
Microsoft.Office.Interop.Excel.Name name;
Is there any way to get the worksheet name that the named range is on in the given workbook, assuming I've gotten the named range's Name object and wb already?
回答1:
Yes, use the Parent property to work your way up the object hierarchy:
ws = name.RefersToRange.Parent.name;
回答2:
Range.Worksheet
is a self-documenting alternative to Range.Parent
:
string wsName = name.RefersToRange.Worksheet.Name;
(Or in 2 steps:
Microsoft.Office.Interop.Excel.Worksheet ws = name.RefersToRange.Worksheet;
string wsName = ws.Name;
)
Reference:
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
回答3:
wb.Names(name).RefersToRange.Parent.Name
来源:https://stackoverflow.com/questions/8128092/get-sheet-name-from-a-named-ranges-name-object