VBA – Ein Blatt auswählen, aktivieren und das ActiveSheet ermitteln
In this Article
In diesem Artikel wird beschrieben, wie mit dem ActiveSheet-Objekt in VBA umgegangen wird. Es wird auch beschrieben, wie man Arbeitsblätter aktiviert, auswählt und zu ihnen wechselt (und noch vieles mehr).
ActiveSheet
In VBA bezieht sich das ActiveSheet auf das aktuell aktive Arbeitsblatt. Es kann immer nur ein Blatt zur selben Zeit aktiv sein.
Ein Arbeitsblatt aktivieren (Festlegung des ActiveSheet)
Um das ActiveSheet zu bestimmen, wird Worksheet.Activate verwendet:
Worksheets("Eingabe").Activate
Der Activate-Befehl sorgt dafür, dass auf das jeweilige Blatt gewechselt wird und dieses auch sichtbar ausgewählt ist.
Das obige Beispiel verwendet den Blattnamen „Eingabe“. Stattdessen kann auch der VBA-Codename verwendet werden, um ein Arbeitsblatt anzusprechen:
Tabelle1.Activate
ActiveSheet-Name
Um den Namen des ActiveSheet zu ermitteln kann dieser wie folgt angesprochen werden:
msgbox ActiveSheet.name
Selektierte Blätter vs. ActiveSheet
Es kann zu jedem Zeitpunkt nur ein einziges Blatt das ActiveSheet sein. Im Gegensatz dazu kann sich eine Blatt-Auswahl jedoch über mehrere Arbeitsblätter gleichzeitig erstrecken.
Wenn mehrere Arbeitsblätter ausgewählt wurden, wird nur das oberste Arbeitsblatt als aktiv betrachtet (dies ist das ActiveSheet).
Arbeitsblatt auswählen
Wenn Sie ein Arbeitsblatt nur ansprechen möchten, ohne es gleichzeitig zu aktivieren, verwenden Sie stattdessen die Select-Anweisung.
Arbeitsblätter mit ihren Namen selektieren
Durch den folgenden Befehl wird ein Arbeitsblatt anhand seines Namens ausgewählt:
Sheets("Eingabe").Select
Selektion eines Arbeitsblattes anhand seiner Index-Nummer
So wird ein Arbeitsblatt anhand seiner relativen Position zu anderen Blättern ausgewählt:
Worksheets(1).Select
Selektion eines Arbeitsblattes anhand seines VBA-Code-Namens
Tabelle1.Select
Die Auswahl von Arbeitsblättern nach Codenamen kann Fehler verhindern, die durch Änderungen des Arbeitsblattnamens verursacht werden.
Aktuelles Arbeitsblatt auswählen
Um das aktuelle Arbeitsblatt (das zur Laufzeit der Code-Zeile aktive Blatt) auszuwählen, verwenden Sie das ActiveSheet-Objekt:
ActiveSheet.Select
Weitere Beispiele zum Aktivieren und Auswählen von Arbeitsblättern
Zuweisung von ActiveSheet zu einer Variable
Dim ws As Worksheet
Set ws = ActiveSheet
ActiveSheet-Name ändern
ActiveSheet.Name = "NeuerName"
With ActiveSheet
Die Verwendung von With ermöglicht es Ihnen, Ihren Code zu straffen, wenn Sie mit Objekten (wie Sheets oder ActiveSheet) arbeiten.
With ActiveSheet
.Name = "Frisch starten"
.Cells.Clear
.Range("A1").Value = .Name
End With
Beachten Sie, dass „ActiveSheet“ nicht zu Beginn jeder Zeile des Codes wiederholt werden muss. Dies spart Zeit, wenn Sie mit einer langen Liste von Befehlen arbeiten.
Schleife durch ausgewählte Blätter
Das folgende Makro durchläuft alle ausgewählten Blätter in einer Schleife und gibt ihre Namen wieder.
Sub GetSelectedSheetsName()
Dim ws As Worksheet
For Each ws In ActiveWindow.SelectedSheets
MsgBox ws.Name
Next ws
End Sub
Zum nächsten Arbeitsblatt wechseln
Dieser Code wechselt zum nächsten Blatt. Wenn das ActiveSheet das letzte Blatt ist, dann wird zum ersten Blatt in der Arbeitsmappe gewechselt.
If ActiveSheet.Index = Worksheets.Count Then
Worksheets(1).Activate
Else
ActiveSheet.Next.Activate
End If
VBA-Programmierung leicht gemacht
Hören Sie auf, online nach VBA-Code zu suchen. Erfahren Sie mehr über AutoMacro – ein VBA Code Generator, der es Anfängern ermöglicht, Prozeduren von Grund auf zu schreiben – mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer!