im Zuge meiner Arbeit setze ich mich aktuell mit dem Eintragen und Auslesen von Bereichen im Namensmanager auseinander. Dabei bin ich auf ein paar Verständnisprobleme gestoßen und wollte mal schauen ob die mir hier jemand erklären kann.
1. Anfangs habe es wie folgt versucht Bereiche als Namen zu definieren und wieder auszulesen bzw. zu beschriften:
dim A as String
'Erstellen von A im Namensmanager
Worksheets("Tabelle1").Names.Add Name:=A, RefersToR1C1:=Range(Cells(2, 10), Cells(2, 20))
'Schreiben von Kommentar zu A im Namensmanager
Worksheets("Tabelle1").Names(A).Comment = "Enthält alle vorhandenen A"
'Löscht Eintrag im Namensmanager
Worksheets("Tabelle1").Names(A).Delete
'Funktion zum Suchen von Name im Namensmanager:
Public Function InNamensmanager(Blatt As String, SName As String) As Boolean
' Prüft, ob Eintrag in Namensmanager vorhanden
Dim NManager As Variant
Dim XName As String
Set NManager = Worksheets(Blatt).Names
For i = 1 To NManager.Count
XName = Right(NManager(i).Name, Len(NManager(i).Name) - InStr(NManager(i).Name, "!"))
If XName = SName Then
InNamensmanager = True
End If
Next i
End Function
Mit diesem Programm-Code hat mir Excel auch alles schön im Namensmanager angelegt und auch wieder gelöscht oder ausgegeben. Einzig mein Problem war, dass im Namensmanager A als Bereich nicht definiert wurde. Weshalb RefersToR1C1:=Range(Cells(2, 10), Cells(2, 20))bei mir nicht funktioniert ist für mich bis jetzt leider ein Rätsel.
2. Nach langem Suchen bin ich dann auf einen Eintrag im Forum gestoßen, bei dem das Anlegen etwas anders gemacht wird:
Worksheets(Tabelle1).Range(Cells(2, 10), Cells(2, 20)).Name = A
Hiermit legt mir Excel den Namen vermeintlich richtig im Namensmanager an und man kann diesen auch beispielsweise als Dropdown nutzen.
Leider kann ich über VBA mit dem gewohnten
Worksheets("Tabelle1").Names(A).Delete
Variante .Name(A).Delete führt auch nicht zum Erfolg.
Allerdings den Namen nicht mehr löschen und auch die vorher genannte Funktion erkennt den Eintrag nicht bzw. gibt mir an, dass im Namensmanager keine Einträge vorhanden sind.
Kann mir jemand erklären wie ich bei 1. die Range richtig angeben müsste?
Oder bei 2. wie ich auf das angelegte Objekt A zugreifen kann?
Über eine Erklärung was ich dabei Falsch gemacht habe wäre ich natürlich auch sehr dankbar :)
Vielen Dank schon einmal für die Hilfe!
Liebe Grüße,
David