Tabellen ansprechen¶
… die Tabellennamen mit unterschiedlicher Ansprache …
Die Tabellenblattnamen lassen sich in der Blattansicht und über das Eigenschaftenfenster ändern.
Codename: Tabelle3
Normaler Name: tbl_Daten (hier: Objekt Worksheets nutzen)
Empfehlung (bzw. Best Practise): Codename
Gründe:
wegen besserer Code/Syntaxcompletion
sicherer
weniger Pflegeaufwand
Varianten zum Ansprechen eines Tabellenblatts:
' Codename:
Tabelle3.Range("A1").Value = 100
' Vollqualifiziert mit Worksheets
Worksheets("tbl_Daten").Range("A4").Value = 10
' Vollqualifiziert mit Worksheets und Index
Worksheets(3).Range("A2").Value = 10
' teilweise qualifiziert - Sheets arbeitet auch mit Diagrammblättern
Sheets("tbl_Daten").Range("A5").Value = 10
' völlig ungenau/gefährlich
Range("A6").Value = 10
Conclusio/Empfehlung: Tabellenblätter genau planen und strukturieren!
Zum Abschluss noch ein kleines Beispiel für das Handling und Erstellen von Tabellenblättern.
Sub TabellenblaetterZaehlen()
Dim Anzahl
Anzahl = ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets.Add
MsgBox "Die Anzahl der Tabellenblätter hat sich von " & Anzahl & " auf " _
& ActiveWorkbook.Worksheets.Count & " erhöht.", , "1. Meldung"
Anzahl = ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets.Add
MsgBox "Die Anzahl der Tabellenblätter hat sich von " & Anzahl & " auf " _
& ActiveWorkbook.Worksheets.Count & " erhöht.", , "2. Meldung"
End Sub
Am Besten würden die neuen Tabelleblätter auch noch gleich mit gewünschten Tabellenblattnamen ausgestattet und sollte an einer spezifischen Stelle in unserer Arbeitsmappe auftauchen.
' Aktives Tabellenblatt benennen:
ActiveSheet.Name = "NewSheet"
' Name beim Erstellen definieren
Sheets.Add.Name = "NewSheet"
' Name für Tabellenblatt aus einer Zelle beziehen
Sheets.Add.Name = range("a3").value
' neues Tabellenblatt NACH Blatt Test mit Name TestNEU
Sheets.Add(After:=Sheets("Test")).Name = "TestNEU"
' oder auch VORHER
Sheets.Add(Before:=Sheets("Test")).Name = "TestNEU"
' am Ende neu einfügen
Sheets.Add After:=Sheets(Sheets.Count)
' am Anfang neu einfügen
Sheets.Add(Before:=Sheets(1)).Name = "FirstSheet
Weiter Beispiel im Netz z.B. unter Automateexcel - Add and name worksheets. Und das ist natürlich nur ein Beispiel von vielen - einfach mal mit unserem aufgebauten Wissen um die Techniken selber recherchieren.
Und wie immer: bitte nicht von den teils altbackenen Websites der VBA-Profis abschrecken lassen. In deren Community scheinen wohlgeformte oder gar moderne Webdesigns nicht zu interessieren ;-).