2016-05-11 4 views
5

DieseZugriffswert (Content) von einer benannten Zelle in Excel VBA

Dim WB As Workbook 
Set WB = Workbooks.Open("foo\bar.xlsx", , True) 
Debug.Print (WB.Names("named_cell").Value) 
WB.Close (False) 

kehrt

='Sheet'!$C$377 

anstelle des Wertes in der Zelle C377.

Wie kann ich stattdessen den Wert der Zelle erhalten?

+2

Versuchen Sie 'Debug.Print (WB.Worksheets (" NameOfSheet "). Bereich (" named_cell "). Value)' stattdessen. – Ralph

+0

Danke! Das funktioniert. Es ist jedoch ein wenig seltsam, dass ich auf den Verweis eines benannten Bereichs zugreifen kann, ohne den Blattnamen, aber nicht den Inhalt anzugeben ... Gibt es wirklich keinen Weg? – speendo

Antwort

3

paar Möglichkeiten:

Debug.Print Range("Named_Range").Value 
Debug.Print [Named_Range].Value '// This uses the evaluate method 

Sie brauchen nicht einen benannten Bereich mit einem Blatt Objekt zu qualifizieren, wenn es in der aktiven Arbeitsmappe ist (was es sein sollte, wie es die letzte Arbeitsmappe ist Sie geöffnet).

1

Sobald der benannten Bereich hergestellt wurde, weiß Excel seine Parent, so:

Sub dural() 
    Dim r As Range 
    Set r = Range("named_cell") 
    MsgBox r.Parent.Name & vbCrLf & r.Address(0, 0) & vbCrLf & r.Value 
End Sub 

ein Weg ist, Informationen zu diesem Bereich zu erhalten:

enter image description here

Dies nutzt die Eigenschaften die Bereich Objekt eher als die Arbeitsmappe Objekt.