2016-05-11 17 views
5

Thiswartość dostępu (treść) o nazwie komórki w Excel VBA

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

powraca

='Sheet'!$C$377 

zamiast wartości w komórce C377.

Jak mogę zamiast tego otrzymać wartość komórki?

+2

Wypróbuj 'Debug.Print (WB.Worksheets (" NameOfSheet ") Zakres (" named_cell "). Wartość)' zamiast. – Ralph

+0

Dziękujemy! To działa. Jednak to trochę dziwne, że mogę uzyskać dostęp do referencji nazwanego zakresu bez określania nazwy arkusza, ale nie treści ... Czy naprawdę nie ma sposobu? – speendo

Odpowiedz

3

kilka sposobów:

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

Nie trzeba się zakwalifikować nazwany zakres z obiektu arkusza, czy to w aktywnym skoroszycie (co powinno być jak to ostatni skoroszyt otworzyłeś).

1

Gdy nazwany zakres ustalono, Excel zna jego Parent, więc:

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 

jest jeden sposób, aby uzyskać informacje na temat tego zakresu:

enter image description here

ta wykorzystuje właściwości obiekt Zakres Obiekt zamiast obiektu Obiekt.

Powiązane problemy