
Ich brauche eine Formel, um die Zelladresse zu verwenden und den zelldefinierten Namen zurückzugeben, d. h.
=INDIRECT(ADDRESS(ROW(),COLUMN(),1,,"SHEET 001"))
Ich brauche dies, ADDRESS(ROW(),COLUMN()
um auf den aktuellen Zelle definierten Namen zu verweisen,
also "Verkäufe" und nicht$A$1
Antwort1
Mir ist schnell eine Problemumgehung eingefallen, die allerdings zugegebenermaßen etwas eingeschränkt ist.
- Führen Sie eine Einfügen-Liste aller definierten Namen in einen freien Bereich eines Blattes durch.
- Die folgende Formel erstellt eine Zeichenfolge, die der gesuchten vollqualifizierten Zelladresse ähnelt, sie in der Liste abgleicht und den Zellnamen aus der angrenzenden Spalte zurückgibt: =INDEX(NameList,MATCH("='"&SUBSTITUTE(CELL("filename"),"fully_qualified_filename","")&"'!"&CELL("address"),NameReferences,0))
Es ist offensichtlich auf Namen beschränkt, die auf eine einzelne Zelle verweisen, könnte aber auf die Suche in Zellbereichen erweitert werden.
Bei mir funktioniert es, weil der Name der Zelle, die die Daten anzeigt, der Name des Datenfelds ist. Daher ist die Referenz immer korrekt, egal, wo ich es eingebe.
Während ich an dem Projekt arbeite, habe ich in ein oft ausgeführtes Makro eine Anweisung eingefügt, die die Namensliste aktualisiert, um sie auf dem neuesten Stand zu halten.
Antwort2
Ich kann mir nicht das Verdienst für das Schreiben dieses Codes zuschreiben, aber er tut genau das, was Sie brauchen. Ich brauchte vor einigen Jahren dieselbe Funktion und bin irgendwo im Cyberspace auf diesen Code gestoßen, habe ihn vielleicht ein wenig modifiziert, aber ich kann mich nicht mehr erinnern. Bei mir hat er großartig funktioniert.
Es funktioniert so:
- Fügen Sie den folgenden Code in ein VBA-Modul einer Excel-Arbeitsmappe mit Makros (*.xlsm) ein.
- Geben Sie dann in eine Excel-Arbeitsblattzelle etwas wie „=CellName(F19)“ ein und es wird etwas wie „rngSomeNamedCell“ zurückgegeben.
Hier ist der Code:
Public Function CellName(cel As Range) As Variant
Dim nm As Name
For Each nm In Names
If nm.RefersTo = "=" & cel.Parent.Name & "!" & cel.Address Then
CellName = nm.Name
Exit Function
End If
Next
CellName = CVErr(xlErrNA)
End Function
Antwort3
Ich glaube nicht, dass es eine integrierte Excel-Funktion gibt, die dies kann. Sie könnten eine benutzerdefinierte Funktion verwenden, um den Zellennamen zurückzugeben.
Die beiden folgenden Funktionen geben den Namen der Zelle zurück. Eine nimmt einen Zellverweis, die andere eine Zeile und Spalte. Beide sind derzeit nur für die Arbeit auf dem lokalen Blatt eingerichtet, aber Sie können bei Bedarf eine optionale Variable hinzufügen, um einen Arbeitsblattnamen anzunehmen.
Die erste Funktion wird aufgerufen mit=cell_name()
Gordon
Function cell_name() As String
dim rng as Range
On Error Resume Next
set rng = activeCell
If Len(rng.Name.Name) < 0 Then
cell_name = "No named Range"
Exit Function
End If
cell_name = rng.Name.Name
if instr("cell_name","!")>0 then
cell_name = Right(cell_name, Len(cell_name) - InStr(cell_name, "!"))
end if
End Function
Die zweite Funktion gibt den Zellennamen aus einer gegebenen Zeile und Spalte zurück
Function cell_name2(r As Long, c As Long) As String
Dim rng As Range
Set rng = Cells(r, c)
On Error Resume Next
If Len(rng.Name.Name) < 0 Then
cell_name = "No named Range"
Exit Function
End If
cell_name2 = rng.Name.Name
End Function
Die erste Funktion wurde bearbeitet, damit sie mit der aktiven Zelle funktioniert.