kann ich in VBA prüfen, ob eine ausgewählte Zelle einen Namen hat ?
also so etwas wie "if hasname(cells1,1)"
Vielen Dank im voraus für jede Hilfe.
Gruss ans SuperForum
erwin
Function HasName(Verweis As String) As Boolean
On Error GoTo ende
Dim aName As String
aName = ActiveWorkbook.Names(RefersTo:=Verweis).Name
HasName = True
On Error GoTo 0
Exit Function
ende:
HasName = False
On Error GoTo 0
End Function
Sub asdf()
Dim x As Boolean
x = HasName("=Tabelle1!$A$2")
End Sub
[/code]
Freundliche Grüsse
Lukas
Sub Name_ermitteln()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
MsgBox nm.Name
Exit Sub
End If
Next
MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub
Um in Excel mit VBA zu prüfen, ob eine ausgewählte Zelle einen Namen hat, kannst du folgende Schritte durchführen:
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Einfügen eines Moduls:
Einfügen
> Modul
.Füge den folgenden Code ein:
Function HasName(Verweis As String) As Boolean
On Error GoTo ende
Dim aName As String
aName = ActiveWorkbook.Names(RefersTo:=Verweis).Name
HasName = True
On Error GoTo 0
Exit Function
ende:
HasName = False
On Error GoTo 0
End Function
Verwende die Funktion:
Sub CheckCellName()
Dim x As Boolean
x = HasName("=Tabelle1!$A$2")
MsgBox x
End Sub
Führe das Makro aus:
F5
, um das Makro auszuführen und das Ergebnis in einer MessageBox zu sehen.Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"
Lösung: Stelle sicher, dass der angegebene Zellverweis korrekt ist.
Fehler: "Der Name ist nicht definiert"
Lösung: Überprüfe, ob der Name in der Arbeitsmappe tatsächlich existiert.
Fehler: "Typenvergleich nicht möglich"
Lösung: Achte darauf, dass du den richtigen Datentyp verwendest, insbesondere bei der Übergabe von Zellreferenzen.
Eine andere Methode, um zu prüfen, ob eine Zelle Teil eines benannten Bereichs ist, ist wie folgt:
Sub Name_ermitteln()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
MsgBox nm.Name
Exit Sub
End If
Next
MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub
Diese Methode sucht nach Namen, die auf die aktive Zelle verweisen.
Prüfung einer Zelle auf einen Namen:
Dim result As Boolean
result = HasName("=Tabelle1!$A$2")
Überprüfung aller Zellen in einem Bereich:
Formeln
> Namensmanager
), um eine Übersicht über alle benannten Bereiche zu erhalten.1. Wie kann ich alle benannten Bereiche in einer Arbeitsmappe auflisten?
Du kannst durch alle Names
in der Arbeitsmappe iterieren und sie in einer Liste anzeigen.
2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden sind auch in Excel 365 anwendbar. Achte darauf, dass du die richtige VBA-Version nutzt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen