Excel VBA (Visual Basic for Applications) ist ein leistungsfähiges Werkzeug, mit dem Sie Aktionen in Excel—Tabellen automatisieren können. Eine wichtige Aufgabe, mit der Entwickler konfrontiert sind, ist die Auswahl des aktuellen Arbeitsblatts in einem Makro. In diesem Artikel werden wir ausführlich untersuchen, wie Sie diese Aufgabe mit Excel VBA ausführen können.
Wenn Sie das aktuelle Arbeitsblatt auswählen, können Sie programmgesteuert mit einem bestimmten Arbeitsblatt in einer Tabelle arbeiten. Dies kann beispielsweise nützlich sein, wenn Sie Makros erstellen, um die Verarbeitung von Daten auf verschiedenen Arbeitsblättern zu automatisieren: Kopieren, Sortieren, Filtern usw.
In Excel VBA können Sie das aktuelle Arbeitsblatt auf verschiedene Arten auswählen. Eine davon ist die Verwendung einer Eigenschaft ActiveSheet. Diese Eigenschaft gibt einen Verweis auf das Objekt des aktuell aktiven Arbeitsblatts zurück. Auf diese Weise können Sie auf seine Eigenschaften und Methoden zugreifen, um die erforderlichen Operationen durchzuführen.
Um beispielsweise den Namen des aktuellen Arbeitsblatts zu ändern, können Sie den folgenden Code verwenden:
ActiveSheet.Name = "Neuer Blattname"
Zum gewünschten Blatt wechseln
Sie können verschiedene Methoden und Eigenschaften verwenden, um in Excel VBA zum gewünschten Arbeitsblatt zu wechseln.
1. Mit der ActiveSheet-Eigenschaft können Sie das aktuell aktive Arbeitsblatt abrufen. Um beispielsweise zum ersten Arbeitsblatt in einer Arbeitsmappe zu gelangen, können Sie den folgenden Code verwenden:
Sheets(1).Activate
2. Mit der Sheets-Methode ("Arbeitsblattname") können Sie zu einem Arbeitsblatt mit dem angegebenen Namen wechseln. Wenn Sie beispielsweise zu einem Arbeitsblatt mit dem Namen "Tabelle2" wechseln möchten, können Sie den folgenden Code verwenden:
Sheets("Лист2").Activate
3. Mit der Sheets(Index) -Methode können Sie zu einem Arbeitsblatt mit einem angegebenen Index wechseln. Die Indizierung beginnt bei 1. Wenn Sie beispielsweise zum dritten Arbeitsblatt in einer Arbeitsmappe wechseln möchten, können Sie den folgenden Code verwenden:
Sheets(3).Activate
4. Mit dem Befehl With können Sie mit einem bestimmten Arbeitsblatt arbeiten, ohne das aktive Arbeitsblatt zu ändern. Wenn Sie beispielsweise mit Blatt1 arbeiten möchten, können Sie den folgenden Code verwenden:
With Sheets("Лист1")' Ваш код для работы с листом "Лист1"End With
Wenn Sie also zu einem bestimmten Arbeitsblatt in Excel VBA wechseln möchten, können Sie die oben genannten Methoden und Eigenschaften verwenden. Dadurch können Sie bequem mit verschiedenen Arbeitsblättern in einer Arbeitsmappe arbeiten und die erforderlichen Vorgänge ausführen.
Definieren des aktuell aktiven Arbeitsblatts
Die einfachste Möglichkeit, das aktuell aktive Arbeitsblatt zu definieren, besteht darin, die ActiveSheet-Eigenschaft zu verwenden. Diese Eigenschaft gibt ein Arbeitsblattobjekt zurück, das das aktuell aktive Arbeitsblatt darstellt.
Beispiel für die Verwendung der ActiveSheet-Eigenschaft:
Dim currentSheet As WorksheetSet currentSheet = ActiveSheet' Теперь переменная currentSheet содержит текущий активный лист
Sobald Sie das aktuell aktive Arbeitsblatt mit der ActiveSheet-Eigenschaft definiert haben, können Sie weitere Operationen ausführen oder mit diesem Arbeitsblatt arbeiten.
Sie können auch die ActiveWindow-Eigenschaft verwenden, um das aktuell aktive Arbeitsblatt zu definieren. Die ActiveWindow-Eigenschaft gibt ein Fensterobjekt zurück, das das aktuell aktive Arbeitsblatt enthält.
Beispiel für die Verwendung der ActiveWindow-Eigenschaft:
Dim currentSheet As WorksheetSet currentSheet = ActiveWindow.ActiveSheet' Теперь переменная currentSheet содержит текущий активный лист
Beide Methoden geben Ihnen die Möglichkeit, das aktuell aktive Arbeitsblatt zu definieren und es in einer Variablen zu speichern, damit Sie weitere Operationen im VBA-Code ausführen können.
Die Verwendung dieser Methoden ist wichtig, wenn Sie mit dem aktuell aktiven Arbeitsblatt in Excel VBA arbeiten müssen. Sie ermöglichen es Ihnen, das aktuelle Arbeitsblatt zu definieren und weitere Vorgänge wie das Lesen von Daten, das Schreiben von Daten oder das Ändern der Zellenformatierung durchzuführen.
Auswählen eines Blattes nach Index
Um ein Arbeitsblatt anhand seines Indexes in Excel VBA auszuwählen, verwenden Sie die Eigenschaft Worksheets. Der Index eines Arbeitsblatts ist die Sequenznummer unter den anderen Arbeitsblättern in der Arbeitsmappe, beginnend bei 1.
Um ein Blatt nach Index auszuwählen, müssen Sie die folgende Syntax verwenden:
Wo Index ist ein ganzzahliger Wert, der die Sequenznummer des auszuwählenden Blattes darstellt.
Wenn wir ein Buch mit drei Blättern haben und das zweite Blatt auswählen möchten, müssen Sie den folgenden Code verwenden:
Nachdem Sie diesen Code ausgeführt haben, wird das ausgewählte Arbeitsblatt im aktiven Excel-Fenster geöffnet.
Auswählen eines Blatts nach Namen
Sie können den Namen des Arbeitsblatts in Excel VBA verwenden, um ein bestimmtes Arbeitsblatt auszuwählen. Dies kann nützlich sein, wenn Sie den Namen des Arbeitsblatts, mit dem Sie arbeiten möchten, im Voraus kennen.
Um ein Arbeitsblatt nach Namen auszuwählen, müssen Sie die Worksheets-Methode verwenden, an die der Arbeitsblattname als Parameter übergeben wird. Es folgt ein Codebeispiel, das diesen Prozess veranschaulicht:
Sub ВыборЛистаПоИмени()Dim имя_листа As Stringимя_листа = "Название листа" ' здесь нужно указать имя нужного листаThisWorkbook.Worksheets(имя_листа).SelectEnd Sub
In diesem Beispiel wird der Variablen "Listenname" ein Wert zugewiesen, der dem Namen des gewünschten Arbeitsblatts entspricht. Mit der Worksheets-Methode wird das Arbeitsblatt dann nach Namen ausgewählt, und die Select-Methode markiert es als aktiv.
Wenn das gewünschte Blatt mit dem angegebenen Namen nicht vorhanden ist, tritt ein Fehler auf. Um dies zu vermeiden, können Sie zunächst mithilfe der WorksheetExists-Funktion überprüfen, wie im folgenden Beispiel gezeigt:
Function ЛистСуществует(имя_листа As String) As BooleanDim лист As WorksheetЛистСуществует = FalseFor Each лист In ThisWorkbook.WorksheetsIf лист.Name = имя_листа ThenЛистСуществует = TrueExit FunctionEnd IfNext листEnd FunctionSub ВыборЛистаПоИмени()Dim имя_листа As Stringимя_листа = "Название листа" ' здесь нужно указать имя нужного листаIf ЛистСуществует(имя_листа) ThenThisWorkbook.Worksheets(имя_листа).SelectElseMsgBox "Лист с указанным именем не существует!"End IfEnd Sub
In diesem Beispiel wird die Funktion Blatt existiert erstellt, die überprüft, ob ein Blatt mit dem angegebenen Namen vorhanden ist. Wenn das Arbeitsblatt vorhanden ist, wird der Code weiterhin wie im vorherigen Beispiel ausgeführt. Wenn kein Blatt mit dem angegebenen Namen vorhanden ist, wird eine Fehlermeldung angezeigt.
Daher kann die Auswahl eines Arbeitsblatts nach Namen in Excel VBA mit der Worksheets-Methode erreicht werden, die den Namen des Arbeitsblatts als Parameter akzeptiert. Mit dieser Methode können Sie das gewünschte Arbeitsblatt aktivieren und die erforderlichen Schritte damit ausführen.