Aktivieren der Arbeitsmappe mit VBA in Excel ~ Arbeitsmappe.Aktivieren
Die Methode Activate
der Klasse Workbook
wird verwendet, um die ausgewählte Arbeitsmappe in den Vordergrund zu stellen.
Hier zeige ich verschiedene Möglichkeiten, wie Sie die zu aktivierende Arbeitsmappe angeben können.
Ein Beispiel: Ihr Makro in Ihrer Excel-Arbeitsmappe fügt eine neue Arbeitsmappe hinzu, die automatisch ganz oben erscheint.
Um die Excel-Arbeitsmappe, die das Makro enthält, wieder nach oben zu holen, verweisen Sie auf sie als ThisWorkbook
und rufen Sie die Methode Activate
auf:
Dim wb As Workbook: Set wb = Workbooks.Add
ThisWorkbook.Activate
Workbook
Klassenobjekt wird hier aus der Application.ThisWorkbook
Verfahren.
Da die Application.ThisWorkbook
Methode ist global Application
kann in der Erklärung weggelassen werden.

Arbeitsmappe nach Dateiname aktivieren
Wenn Sie den Dateinamen kennen, können Sie ihn verwenden, um die Arbeitsmappe zu identifizieren, die vorangestellt werden soll.
Workbooks("Demo.xlsm").Activate
Workbooks("Demo.xlsm").Windows(2).Activate
Arbeitsmappe mit Variablennamen aktivieren
Die Verwendung eines Variablennamens anstelle eines String-Literales macht Ihren Code flexibler.
Außerdem können Sie mit einer Workbook
Variable wb
können Sie mehr als eine Aktion für die ausgewählte Arbeitsmappe durchführen.
Dim strWorkbook As String: strWorkbook = "Demo.xlsm"
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
wb.Activate
Aktivieren der Arbeitsmappe mit vollständigem Pfad
Wie das Bild oben zeigt, werden die Arbeitsmappen durch den Dateinamen mit der Erweiterung - ohne Pfad - identifiziert. Der Code, um die zu aktivierende Arbeitsmappe auszuwählen, erfolgt in zwei Schritten:
- Bestimmen Sie den Dateinamen, um die Arbeitsmappe zu identifizieren;
- Anwenden der
Activate
Methode.
Der folgende Code verwendet die Funktion FileName
, die den erforderlichen Teil des vollständigen Namens einschließlich des Pfads auf der Festplatte übernimmt.
Dim strFile As String: strFile = "C:\temp\test.xlsm"
Dim strFileName As String
strFileName = FileName(File:=strFile)
Workbooks(strFileName).Activate
Public Function FileName(File As String) As String
'?FileName("c:\a\b\c.txt") -> c.txt
FileName = Right(File, Len(File) - InStrRev(File, "\"))
End Function
Arbeitsmappe mit Platzhalter aktivieren
Manchmal weiß man, dass der Dateiname einem bestimmten Muster folgt, aber einen verifizierbaren Teil enthält, z. B. eine Wochennummer. Die Identifizierung in Sammlungen muss genau sein, Sie können keine Platzhalter direkt verwenden.
- In VBA führt die Angabe eines ungenauen Werts für den Index der Eigenschaft Item einer Sammlung resultiert in
- Die
Like
Groß- und Kleinschreibung wird unterschieden
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name Like "Dem*.xlsm" Then
wb.Activate
Exit For
End If
Next
Aktivieren Sie Arbeitsmappe und Blatt
Um eine Arbeitsmappe und ein darin enthaltenes Blatt zu aktivieren, können Sie grundsätzlich das eine und das andere tun.
Dim wb As Workbook
Set wb = Workbooks(Index:="data123.xlsx")
wb.Activate
Dim ws As Worksheet
Set ws = wb.Sheets(Index:="Countries")
ws.Activate
Oder vielleicht ein bisschen netter, indem man zeigt, dass das Blatt zur Arbeitsmappe gehört, indem man die Struktur With
verwendet:
Dim wb As Workbook
Set wb = Workbooks(Index:="data123.xlsx")
With wb
.Activate
.Sheets(Index:="Countries").Activate
End With
Autor: Mark Uildriks Referenz: Workbook.Activate() | Microsoft Learn