VBA Arbeitsmappe öffnen/schließen

In diesem Tutorial erfahren Sie, wie Sie mit VBA die Excel-Arbeitsmappe auf verschiedene Weise öffnen und schließen.

Mit VBA können Sie Dateien mit den Standardmethoden öffnen oder schließen .Offen und .Nah dran.

Wenn Sie erfahren möchten, wie Sie überprüfen können, ob eine Datei vorhanden ist, bevor Sie versuchen, die Datei zu öffnen, klicken Sie auf diesen Link: VBA-Datei existiert

Öffnen Sie eine Arbeitsmappe in VBA

Arbeitsmappe aus Pfad öffnen

Wenn Sie wissen, welche Datei Sie öffnen möchten, können Sie deren vollständigen Pfadnamen in der Funktion angeben. Hier ist der Code:

1 Workbooks.Open "C:\VBA-Ordner\Beispieldatei 1.xlsx"

Diese Codezeile öffnet die Datei „Beispieldatei 1“ aus dem „VBA-Ordner“.

Arbeitsmappe öffnen - ActiveWorkbook

Wenn Sie eine Arbeitsmappe öffnen, wird sie automatisch zur ActiveWorkbook. Sie können auf die neu geöffnete Arbeitsmappe wie folgt verweisen:

1 ActiveWorkbook.Speichern

Wenn Sie auf ein Blatt oder einen Bereich verweisen und den Namen der Arbeitsmappe weglassen, geht VBA davon aus, dass Sie sich auf die ActiveWorkbook beziehen:

1 Sheets("Sheet1").Name = "Eingabe"

Arbeitsmappe öffnen und einer Variablen zuweisen

Sie können auch eine Arbeitsmappe öffnen und direkt einer Objektvariablen zuweisen. Dieses Verfahren öffnet eine Arbeitsmappe für die wb Variable und speichern Sie dann die Arbeitsmappe.

123456 Unter OpenWorkbookToVariable()Dim wb als ArbeitsmappeSet wb = Workbooks.Open("C:\VBA-Ordner\Beispieldatei 1.xlsx")wb.SpeichernEnd Sub

Das Zuweisen von Arbeitsmappen zu Variablen beim Öffnen ist der beste Weg, um den Überblick über Ihre Arbeitsmappen zu behalten

Dialog zum Öffnen der Arbeitsmappe

Sie können auch das Dialogfeld Datei öffnen der Arbeitsmappe auslösen. Dies ermöglicht dem Benutzer, zu einer Datei zu navigieren und sie zu öffnen:

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

Wie Sie in Bild 1 sehen können, können Benutzer bei diesem Ansatz auswählen, welche Datei geöffnet werden soll. Das Dialogfeld Datei öffnen kann stark angepasst werden. Sie können standardmäßig einen bestimmten Ordner verwenden, auswählen, welche Dateitypen sichtbar sind (z. B. nur xlsx) und mehr. Lesen Sie unser Tutorial zum Dialogfeld "Datei öffnen" für detaillierte Beispiele.

Neue Arbeitsmappe öffnen

Diese Codezeile öffnet eine neue Arbeitsmappe:

1 Arbeitsmappen.Hinzufügen

Neue Arbeitsmappe für Variable öffnen

Dieses Verfahren öffnet eine neue Arbeitsmappe und weist sie der Variablen wb zu:

1234 Unter OpenNewWorkbook()Dim wb als ArbeitsmappeSet wb = Workbooks.AddEnd Sub

Arbeitsmappensyntax öffnen

Wenn Sie Workbooks.Open verwenden, stellen Sie möglicherweise fest, dass beim Öffnen der Arbeitsmappe viele Optionen zur Verfügung stehen:

Der Dateiname ist erforderlich. Alle anderen Argumente sind optional – und die meisten anderen Argumente müssen Sie wahrscheinlich nicht kennen. Hier die beiden häufigsten:

Arbeitsmappe schreibgeschützt öffnen

Wenn die Arbeitsmappe schreibgeschützt geöffnet ist, können Sie die Originaldatei nicht überschreiben. Dadurch wird verhindert, dass die Datei vom Benutzer bearbeitet wird.

1 Workbooks.Open "C:\VBA Folder\Sample file 1.xlsx", , True

Passwortgeschützte Arbeitsmappe öffnen

Eine Arbeitsmappe kann kennwortgeschützt sein. Verwenden Sie diesen Code, um die passwortgeschützte Arbeitsmappe zu öffnen:

1 Workbooks.Open "C:\VBA-Ordner\Beispieldatei 1.xlsx", , , "Passwort"

Syntaxhinweise zur Arbeitsmappe öffnen

Beachten Sie, dass wir im obigen Bild eine Klammer „(“ eingefügt haben, um die Syntax anzuzeigen. Wenn Sie beim Arbeiten mit Workbooks.Open Klammern verwenden, müssen Sie die Arbeitsmappe einer Variablen zuweisen:

1234 Unter OpenWB()Dim wb als ArbeitsmappeSet wb = Workbooks.Open("C:\VBA-Ordner\Beispieldatei 1.xlsx", True, True)End Sub

Schließen Sie eine Arbeitsmappe in VBA

Spezifische Arbeitsmappe schließen

Ähnlich wie beim Öffnen einer Arbeitsmappe gibt es mehrere Möglichkeiten, eine Datei zu schließen. Wenn Sie wissen, welche Datei Sie schließen möchten, können Sie den folgenden Code verwenden:

1 Workbooks.Close ("C:\VBA-Ordner\Beispieldatei 1.xlsx")

Diese Codezeile schließt die Datei „Beispieldatei 1“, wenn sie geöffnet ist. Wenn nicht, wird ein Fehler zurückgegeben, daher sollten Sie sich um die Fehlerbehandlung kümmern.

Aktive Arbeitsmappe schließen

Wenn Sie die aktuell aktive Arbeitsmappe schließen möchten, können Sie dies mit dieser Codezeile tun:

1 ActiveWorkbook.Schließen

Alle geöffneten Arbeitsmappen schließen

Um alle geöffneten Arbeitsmappen zu schließen, können Sie einfach diesen Code verwenden:

1 Arbeitsmappen.Schließen

Erste geöffnete Arbeitsmappe schließen

Dadurch wird die erste geöffnete/erstellte Arbeitsmappe geschlossen:

1 Arbeitsmappen(1).Schließen

Ersetzen Sie 1 durch 2, um die zweite geöffnete / erstellte Arbeitsmappe zu schließen usw.

Schließen ohne speichern

Dadurch wird eine Arbeitsmappe geschlossen, ohne zu speichern und ohne die Aufforderung zum Speichern anzuzeigen:

1 ActiveWorkbook.Close savechanges:=False

Speichern und schließen ohne Aufforderung

Auf ähnliche Weise wird eine Arbeitsmappe gespeichert und geschlossen, ohne dass die Speicheraufforderung angezeigt wird:

1 ActiveWorkbook.Close savechanges:=True

Hinweis: Es gibt mehrere andere Möglichkeiten, anzugeben, ob eine Arbeitsmappe gespeichert werden soll oder nicht und ob Eingabeaufforderungen angezeigt werden oder nicht. Dies wird hier genauer besprochen.

Andere offene Beispiele für Arbeitsmappen

Öffnen Sie mehrere neue Arbeitsmappen

Dieses Verfahren öffnet mehrere neue Arbeitsmappen und weist die neuen Arbeitsmappen einem Array zu:

12345678 Unter OpenMultipleNewWorkbooks()Dim arrWb(3) als ArbeitsmappeDim i As IntegerFür i = 1 bis 3Set arrWb(i) = Workbooks.AddAls nächstesEnd Sub

Alle Excel-Arbeitsmappen in einem Ordner öffnen

Bei diesem Verfahren werden alle Excel-Arbeitsmappen in einem Ordner mit der Auswahl zum Öffnen des Dateidialogs geöffnet.

12345678910111213141516 Unter OpenMultipleWorkbooksInFolder()Dim wb als ArbeitsmappeDim dlgFD As FileDialogDim strOrdner als StringDim strFileName als StringSet dlgFD = Application.FileDialog(msoFileDialogFolderPicker)Wenn dlgFD.Show = -1 ThenstrFolder = dlgFD.SelectedItems(1) & Application.PathSeparatorstrFileName = Dir(strFolder & "*.xls*")Do While strFileName ""Set wb = Workbooks.Open(strFolder & strFileName)strFileName = DirSchleifeEnde WennEnd Sub

Überprüfen Sie, ob eine Arbeitsmappe geöffnet ist

Dieses Verfahren testet, ob eine Arbeitsmappe geöffnet ist:

1234567891011 Sub TestByWorkbookName()Dim wb als ArbeitsmappeFür jedes wb in ArbeitsmappenIf wb.Name = "Neues Microsoft Excel Worksheet.xls" ThenMsgBox "Gefunden"Beenden Sie den Anrufcode für den Sub hier, wir beenden ihn erst einmalEnde WennNächsteEnd Sub

Workbook_Open-Ereignis

VBA-Ereignisse sind „Trigger“, die VBA anweisen, bestimmten Code auszuführen. Sie können Arbeitsmappenereignisse für das Öffnen, Schließen, vor dem Speichern, nach dem Speichern und mehr einrichten.

Lesen Sie unser Workbook_Open Event-Tutorial, um mehr über das automatische Ausführen von Makros beim Öffnen einer Arbeitsmappe zu erfahren.

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

wave wave wave wave wave