In diesem Artikel wird das ActiveSheet-Objekt in VBA erläutert. Es wird auch erläutert, wie Sie Arbeitsblätter aktivieren, auswählen und zu Arbeitsblättern gehen (und vieles mehr). Lesen Sie unser vollständiges Handbuch zu VBA-Arbeitsblättern, um weitere Informationen zum Arbeiten mit Arbeitsblättern in VBA zu erhalten.
ActiveSheet
In VBA bezieht sich ActiveSheet auf das derzeit aktive Arbeitsblatt. Es kann immer nur ein Blatt aktiv sein.
Arbeitsblatt aktivieren (Einrichten des ActiveSheet)
Um das ActiveSheet einzustellen, verwenden Sie Worksheet.Activate:
1 | Arbeitsblätter("Eingabe").Aktivieren |
Der Befehl „Blatt aktivieren“ wird tatsächlich zum Blatt „gehen“ und das sichtbare Blatt ändern.
Im obigen Beispiel wird der Name Sheet (Tab) verwendet. Stattdessen können Sie den VBA-Codenamen für das Arbeitsblatt verwenden:
1 | Blatt1.Aktivieren |
ActiveSheet-Name
So erhalten Sie den ActiveSheet-Namen:
1 | msgbox ActiveSheet.name |
Ausgewählte Tabellenblätter im Vergleich zu ActiveSheet
Zu jedem Zeitpunkt kann nur ein Blatt das ActiveSheet sein. Es können jedoch mehrere Arbeitsblätter gleichzeitig ausgewählt werden.
Wenn mehrere Arbeitsblätter ausgewählt sind, wird nur das „oberste“ Arbeitsblatt als aktiv betrachtet (das ActiveSheet).
Arbeitsblatt auswählen
Wenn Sie ein Arbeitsblatt auswählen möchten, anstatt es zu aktivieren. Verwenden Sie stattdessen .Select.
Arbeitsblatt nach Tab-Name auswählen
Dies wählt ein Arbeitsblatt basierend auf seinem Blattregisternamen aus
1 | Sheets("Input").Select |
Arbeitsblatt nach Indexnummer auswählen
Dadurch wird ein Arbeitsblatt basierend auf seiner Position relativ zu anderen Registerkarten ausgewählt
1 | Arbeitsblätter(1).Wählen |
Arbeitsblatt mit VBA-Codenamen auswählen
1 | Blatt1.Wählen |
Das Auswählen von Arbeitsblättern nach Codenamen kann Fehler verhindern, die durch Änderungen des Arbeitsblattnamens verursacht werden.
Aktuelles Arbeitsblatt auswählen
Um das aktuelle Arbeitsblatt auszuwählen, verwenden Sie das ActiveSheet-Objekt:
1 | ActiveSheet.Select |
Weitere Beispiele zum Aktivieren / Auswählen von Tabellenblättern
Setzen Sie ActiveSheet auf Variable
Dadurch wird das ActiveSheet einer Arbeitsblattobjektvariablen zugewiesen.
123 | Dim ws als ArbeitsblattSet ws = ActiveSheet |
ActiveSheet-Namen ändern
Dadurch wird der ActiveSheet-Name geändert.
1 | ActiveSheet.Name = "NeuerName" |
Mit ActiveSheet
Mit der With-Anweisung können Sie Ihren Code optimieren, wenn Sie mit Objekten (wie Sheets oder ActiveSheet) arbeiten.
12345 | Mit ActiveSheet.Name = "StartFresh".Zellen.Clear.Bereich("A1").Wert = .NameEnde mit |
Beachten Sie, dass Sie „ActiveSheet“ nicht vor jeder Codezeile wiederholen müssen. Dies kann eine enorme Zeitersparnis sein, wenn Sie mit einer langen Liste von Befehlen arbeiten.
Durchlaufen ausgewählter Blätter
Das folgende Makro durchläuft alle ausgewählten Blätter und zeigt ihre Namen an.
12345678 | Unter GetSelectedSheetsName()Dim ws als ArbeitsblattFür jedes ws in ActiveWindow.SelectedSheetsMsgBox ws.NameNächstes wsEnd Sub |
Gehe zum nächsten Blatt
Dieser Code geht in das nächste Blatt. Wenn das ActiveSheet das letzte Blatt ist, wird es zum ersten Blatt in der Arbeitsmappe gehen.
12345 | Wenn ActiveSheet.Index = Worksheets.Count ThenArbeitsblätter(1).AktivierenAndersActiveSheet.Next.ActivateEnde Wenn |