ich arbeite mich seit kurzem mit VBA in Kombination mit Excel 2007 ein und hab nun eine kleine Frage:
Und zwar besteht ja die Möglichkeit Tabellen (über Einfügen -> Tabelle) zu erstellen, die auch automatisch einen eigenen Namen haben, welcher im Namensmanger als Tabellenname gekennzeichnet ist.
Wie kann ich diese Namen in VBA ansprechen, denn über Names funktioniert es nicht…
For i = 1 To Names.Count
MsgBox (Names(i).Name)
Next i
gib nur selbstdefinierte Namen aus.
In der Objektreferenz habe ich nichts vernünftiges gefunden oder ich habs nicht Verstanden
Vielen Dank schonmal!
Hey,
vielen dank für die schnelle antowort, aber ich weiß nicht ob mein Problem wirklich klar ist (vll hab ich auch deine Antwort nicht richtig verstanden…)
Es geht nicht um Worksheets und deren Namen, sondern um die Namen der Bereiche/Tabellen die mit Einfügen->Tabelle erstellt werden.
Angenommen ich habe mehrere Sheets mit solchen Tabellen, deren Namen ich nicht kenne und darum mit VBA auslesen möchte.
Mit meinem Code werden alle Bereiche (Names(index)) ausgegeben, denen per Hand ein Name zugewiesen wurde, nicht aber die Tabellennamen. Darum frage ich mich, wie ich an sie rankomme
Ich habe zwar Excel 2007, aber mit der Funktion von Tabellen einfügen bin ich noch nicht vertraut.
Die einzige Idee, die mir dann noch einfällt, ist, daß Du es 'mal mit der Eigenschaft „CodeName“ ausprobieren könntest, habe da aber keine große Hoffnung. Weiter kann ich Dir sonst leider nicht helfen.
Also das Problem hat sich erledigt! Falls es jemanden interessieren solte:
mit dem MakroRecorder (hätte man auch früher drauf kommen können) sieht man, dass diese Tabellen ListObjects sind.
Darum werden sie auch nicht durch Names angesprochen.Wenn man nun die Namen herausfinden möchte könnte das so aussehen:
Dim i As Integer
Dim n As Integer
Dim LstObjcts As ListObjects
Dim Tabelle As String
For i = 1 To Worksheets.Count
Set LstObjcts = Worksheets(i).ListObjects
For n = 1 To LstObjcts.Count
Tabelle = LstObjcts.Item(n).Name
MsgBox (Tabelle)
Next n
Next i