2011-11-14 13 views

Respuesta

12

Sí, utilice el Padres propiedad a su forma de trabajo la jerarquía de objetos:

ws = name.RefersToRange.Parent.name; 
+1

tengo que echarlo a un tipo de hoja de cálculo antes de que pueda llamar a la propiedad de nombre. De lo contrario, esto funcionó como se esperaba. – Shark

+0

Tenga en cuenta que intentar acceder a RefersToRange fallará con un error 0x800A03EC si el rango con nombre no hace referencia a una hoja. Por ejemplo, si el nombre se configuró para hacer referencia a "H2", la propiedad RefersTo devolverá "= # REF! $ H $ 2". En esas circunstancias, RefersToRange fracasará. Deberá utilizar un contenedor Try/Catch o comprobar la cadena RefersTo con .StartsWith ("= # REF!") Antes de verificar la propiedad. – Robert

0
wb.Names(name).RefersToRange.Parent.Name 
1

Range.Worksheet es una alternativa autodocumentado a Range.Parent:

Microsoft.Office.Interop.Excel.Worksheet ws = name.RefersToRange.Worksheet; 
string wsName = ws.Name; 

O en una sola redada:

string wsName = name.RefersToRange.Worksheet.Name; 

Referencia:
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

+0

Está pidiendo el nombre de la hoja de cálculo, no el objeto de la hoja de cálculo. –

+0

@LanceRoberts: Gracias - actualizado. –

Cuestiones relacionadas