2011-11-14 10 views

risposta

12

Sì, utilizzare la Capogruppo proprietà per il tuo lavoro fino alla gerarchia di oggetti:

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

ho bisogno di cast a un tipo di foglio di lavoro prima di poter chiamare la proprietà nome. Altrimenti, ha funzionato come previsto. – Shark

+0

Si noti che il tentativo di accedere a RefersToRange avrà esito negativo con un errore 0x800A03EC se l'intervallo denominato non fa riferimento a un foglio. Ad esempio, se il nome è stato impostato per fare riferimento a "H2", la proprietà RefersTo restituirà "= # REF! $ H $ 2". In tali circostanze RefersToRange fallirà. Sarà necessario utilizzare un wrapper Try/Catch o controllare la stringa RefersTo con un .StartsWith ("= # REF!") Prima di controllare la proprietà. – Robert

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

Range.Worksheet è un auto-documenta alternativa al Range.Parent:

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

O in un solo angolo:

string wsName = name.RefersToRange.Worksheet.Name; 

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

Chiede il nome del foglio di lavoro, non l'oggetto del foglio di lavoro. –

+0

@LanceRoberts: Grazie - aggiornato. –

Problemi correlati