VBA Name eines Arbeitsblattes auslesen und umbenennen
In this Article
Dieses Tutorial behandelt die Interaktion mit Blattnamen in VBA.
Get Sheet Name
Blattnamen werden in der Eigenschaft Name der Objekte Sheets oder Worksheets gespeichert. Der Blattname ist der Name der „Registerkarte“ (Arbeitsblatt), die unten in Excel sichtbar ist:
ActiveSheet Namen abfragen
Dieser Code-Schnipsel gibt den ActiveSheet-Namen in einem Meldungsfeld wieder:
MsgBox ActiveSheet.Name
Blattname über Indexnummer abfragen
Hiermit wird der Name des ersten Arbeitsblatts in einer Message Box angezeigt:
MsgBox Sheets(1).Name
Dies zeigt den Namen des letzten Arbeitsblatts in der Arbeitsmappe an:
MsgBox Sheets(Sheets.Count).Name
Blattname über Codename abrufen
Im VBA-Editor gibt es eine Option zum Ändern des „Codenamens“ eines Blatts. Der Codename ist für den Excel-Benutzer nicht sichtbar und kann nur im VBA-Editor eingesehen werden:
In VBA können Sie bei der Arbeit mit Blättern auf den üblichen Tab-Namen verweisen:
Sheets("Eingabe").Aktivieren
oder den VBA-Code-Namen:
Tabelle1.Activate
Der Verweis auf den Codenamen ist vorzuziehen, wenn sich der Name Arbeitsblattes jemals ändern sollte. Wenn Sie dem Excel-Benutzer die Änderung von Blattnamen erlauben, sollten Sie in Ihrem VBA-Code auf den Codenamen verweisen, damit eine Nichtübereinstimmung des Arbeitsblattnamens nicht zu ungewünschten Fehlern führen. Codenamen von Arbeitsblättern werden hier ausführlicher behandelt.
So gehen Sie vor, um auf den VBA Codenamen zuzugreifen:
MsgBox CodeName.Name
Blatt umbenennen
Sie können Blätter umbenennen, indem Sie die Eigenschaft Name der Objekte Sheets oder Worksheets anpassen.
ActiveSheet umbenennen
ActiveSheet.Name = "NeuerName"
Blatt per Name umbenennen
Sheets("AltesBlatt").Name = "NeuerName"
Blatt per Indexnummer umbenennen
Hier verwenden wir 1, um das erste Blatt in der Arbeitsmappe umzubenennen.
Sheets(1).Name = "NeuerName"
Blatt per Codenamen umbenennen
Mit diesem Code wird ein Blatt anhand seines VBA-Codenamens (siehe oben) umbenannt:
Component.Name = "NewName"
Prüfen, ob Blattname vorhanden ist
Es folgt ein Code, der prüft, ob ein Blatt mit einem bestimmten Namen bereits existiert.
'Testen Sie, ob ein Bereich auf einem Blatt vorhanden ist.
'Bereich leer lassen, um zu prüfen, ob das Blatt existiert
'Eingaben:
' WelchesBlatt - String Name des Blattes (z.B. "Tabelle1")
' WelcherBereich (Optional, Standard = "A1") - Bereichskoordinaten in Textform (z.B. "A1")
Function RangeExists(WelchesBlatt As String, Optional ByVal WelcherBereich As String = "A1") As Boolean
Dim test As Range
On Error Resume Next
Set test = ActiveWorkbook.Sheets(WelchesBlatt ).Range(WelcherBereich )
RangeExists = Err.Number = 0
On Error GoTo 0
Funktion beenden
Die Funktion gibt TRUE zurück, wenn das Blatt existiert, oder FALSE, wenn es nicht existiert.
Verwenden Sie die Funktion wie folgt:
Sub Test_SheetExists()
MsgBox RangeExists("Einrichtung")
End Sub
Blatt kopieren und umbenennen
Dieses Beispiel stammt aus unserem Artikel über das Kopieren von Blättern.
Nach dem Kopieren und Einfügen eines Blattes wird das neu erstellte Blatt zum ActiveSheet. Um also ein kopiertes Blatt umzubenennen, verwenden Sie einfach ActiveSheet.Name:
Sub BlattKopierenUmbennen2()
Sheets("Tabelle1").Copy After:=Sheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = "LetztesBlatt"
On Error GoTo 0
End Sub
Hinweis: Wir haben eine Fehlerbehandlung zur Vermeidung von Fehlern hinzugefügt für den Fall, dass ein Blattname bereits existiert.