VBA-Arbeiten mit Arbeitsmappen (Das Arbeitsmappenobjekt)

Dieser Leitfaden führt Sie in die Arbeit mit dem Arbeitsmappenobjekt in VBA.

Das Arbeitsmappenobjekt

Um mit Arbeitsmappen in VBA interagieren zu können, müssen Sie zunächst die Arbeitsmappenobjekt.

Mit dem Arbeitsmappenobjekt können Sie Arbeitsmappen wie folgt anhand ihres Namens referenzieren:

1 Arbeitsmappen("Book2.xlsm").Aktivieren

Dieser Code funktioniert jedoch nur, wenn die Arbeitsmappe geöffnet ist. Wenn die Arbeitsmappe geschlossen ist, müssen Sie den vollständigen Arbeitsmappenpfad angeben:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

Anstatt den vollständigen Pfad einzugeben, können Sie, wenn sich Ihre gewünschte Arbeitsmappe im selben Verzeichnis wie die Arbeitsmappe befindet, in der Ihr Code gespeichert ist, diesen Zeilencode verwenden, um die Arbeitsmappe zu öffnen:

1 Workbooks.Open (ThisWorkbook.Path & "\book2.xlsm")

Dabei wird das ThisWorkbook-Objekt verwendet, das wir im nächsten Abschnitt besprechen werden.

Arbeitsmappen-Indexnummer

Schließlich können Sie Arbeitsmappen anhand ihrer „Indexnummer“ referenzieren. Die Indexnummer einer Arbeitsmappe entspricht der Reihenfolge, in der die Arbeitsmappe geöffnet wurde (technisch gesehen ist dies die Position der Arbeitsmappe in der Arbeitsmappensammlung).

1 Arbeitsmappen(1).Aktivieren

Dies ist nützlich, wenn Sie beispielsweise die erste (oder letzte) geöffnete Arbeitsmappe schließen möchten.

Aktivieren Sie Arbeitsmappe, ActiveWorkbook und ThisWorkbook

Wenn eine Arbeitsmappe ist NICHT AKTIV, können Sie wie folgt auf die Objekte der Arbeitsmappe zugreifen:

1 Workbooks("Book2.xlsm").Sheets("Sheet1").Range("A1").value = 1

Wenn die Arbeitsmappe jedoch aktiv ist, können Sie das Arbeitsmappenobjekt weglassen:

1 Sheets("Sheet1").Range("A1").value = 1

Und wenn Sie mit dem aktiven Blatt der Arbeitsmappe interagieren möchten, können Sie das Blattobjekt auch weglassen:

1 Bereich("A1").Wert = 1

Arbeitsmappe aktivieren

Um eine Arbeitsmappe zu aktivieren, verwenden Sie die Methode aktivieren.

1 Arbeitsmappen("Book2.xlsm").Aktivieren

Jetzt können Sie mit den Objekten von Book2 interagieren, ohne den Arbeitsmappennamen explizit anzugeben.

AktivArbeitsmappe

Die AktivArbeitsmappe Objekt verweisen immer auf die aktive Arbeitsmappe. Dies ist nützlich, wenn Sie das ActiveWorkbook einer Variablen zur späteren Verwendung zuweisen möchten.

12 Dim wb als ArbeitsmappeSet wb = ActiveWorkbook

DiesesArbeitsbuch

Die DiesesArbeitsbuch object verweist immer auf die Arbeitsmappe, in der der ausgeführte Code gespeichert ist. Um ThisWorkbook zu aktivieren, verwenden Sie diese Codezeile:

1 DieseArbeitsmappe.Aktivieren

Arbeitsmappe öffnen

Um eine Arbeitsmappe zu öffnen, verwenden Sie die Offene Methode:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

Die neu geöffnete Arbeitsmappe wird immer die AktivArbeitsmappe, sodass Sie problemlos damit interagieren können.

1 ActiveWorkbook.Speichern

Die Open-Methode hat mehrere andere Argumente, die es Ihnen ermöglichen, schreibgeschützt zu öffnen, eine kennwortgeschützte Arbeitsmappe zu öffnen und vieles mehr. Dies wird hier in unserem Artikel über das Öffnen / Schließen von Arbeitsmappen behandelt.

Öffnen und Variable zuweisen

Sie können auch eine Arbeitsmappe öffnen und gleichzeitig einer Variablen zuweisen:

12 Dim wb als ArbeitsmappeSet wb = Workbooks.Open("C:\Users\StevePC2\Downloads\book2.xlsm")

Dialog Datei öffnen

Sie können das Dialogfeld „Datei öffnen“ auch wie folgt auslösen:

12345678 Unter OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename()Arbeitsmappen.Öffnen (strFile)End Sub

Neue Arbeitsmappe erstellen (hinzufügen)

Diese Codezeile erstellt eine neue Arbeitsmappe:

1 Arbeitsmappen.Hinzufügen

Die neue Arbeitsmappe wird jetzt zum AktivArbeitsmappe, sodass Sie damit interagieren können (z. B. die neue Arbeitsmappe speichern).

Neue Arbeitsmappe zu Variable hinzufügen

Sie können einer Variablen auch direkt eine neue Arbeitsmappe hinzufügen:

12 Dim wb als ArbeitsmappeSet wb = Workbooks.Add

Arbeitsmappe schließen

Schließen & speichern

Um eine Arbeitsmappe mit Speichern zu schließen, verwenden Sie die Schließen-Methode mit Änderungen speichern auf WAHR setzen:

1 ActiveWorkbook.Close SaveChanges:=True

Schließen ohne Speichern

Um ohne zu speichern zu schließen, stellen Sie Änderungen speichern gleich FALSCH:

1 ActiveWorkbook.Close SaveChanges:=False

Arbeitsmappe Speichern unter

Die SaveAs-Methode wird verwendet, um eine Arbeitsmappe unter zu speichern.

Um eine Arbeitsmappe unter einem neuen Namen im selben Verzeichnis zu speichern, können Sie Folgendes verwenden:

1 ActiveWorkbook.SaveAs "neu"

wobei „neu“ der neue Dateiname ist.

Um eine Arbeitsmappe in einem neuen Verzeichnis mit einer bestimmten Dateierweiterung zu speichern, geben Sie einfach das neue Verzeichnis und den Dateinamen an:

1 ActiveWorkbook.SaveAs "C:\Users\StevePC2\Downloads\new.xlsm"

Andere VBA-Beispiele für Arbeitsmappen

Name der Arbeitsmappe

So rufen Sie den Namen einer Arbeitsmappe ab:

1 MsgBox ActiveWorkbook.Name

Arbeitsmappe schützen

Um die Arbeitsmappenstruktur vor Bearbeitung zu schützen, können Sie die Schutzmethode (Passwort optional):

1 Workbooks("book1.xlsm").Protect "password"

Um den Schutz einer Arbeitsmappe aufzuheben, verwenden Sie die UnProtect-Methode:

1 Workbooks("book1.xlsm").Unprotect "password"

Durchlaufen aller geöffneten Arbeitsmappen

So durchlaufen Sie alle geöffneten Arbeitsmappen:

123456789 Sub LoopThroughWBs()Dim wb als ArbeitsmappeFür jedes wb in ArbeitsmappenMsgBox wb.NameNächstes wbEnd Sub

Arbeitsmappen-Aktivierungsereignis

Sie können Code ausführen, wenn eine bestimmte Arbeitsmappe mit dem . geöffnet wird Arbeitsmappen-Öffnen-Ereignis.

Platzieren Sie dieses Verfahren im ThisWorkbook-Modul Ihrer Arbeitsmappe:

123 Private Unterarbeitsmappe_Open()Sheets("sheet1").AktivierenEnd Sub

Dieses Verfahren wird aktiviert Blatt1 jedes Mal, wenn die Arbeitsmappe geöffnet wird.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave