VBA-Datei speichern - 20 einfache Beispiele - VBA-Codebeispiele

In diesem VBA-Tutorial wird beschrieben, wie Sie eine Datei mit den Befehlen Speichern und Speichern unter in VBA speichern.

Arbeitsmappe speichern - VBA

Der VBA-Befehl Speichern speichert eine Excel-Datei ähnlich wie das Klicken auf das Symbol Speichern oder die Verwendung der Verknüpfung zum Speichern (STRG + S).

Speichern einer angegebenen Arbeitsmappe

Um eine Arbeitsmappe zu speichern, verweisen Sie auf das Arbeitsmappenobjekt und verwenden Sie den Befehl Speichern.

1 Arbeitsmappen("savefile.xlsm").Speichern

Speichern Sie die aktive Arbeitsmappe

Hinweis: Dies ist die aktuell aktive Arbeitsmappe aus dem VBA-Code, die sich von ThisWorkbook unterscheidet, die den laufenden Code enthält.

1 ActiveWorkbook.Speichern

Speichern Sie die Arbeitsmappe, in der der Code gespeichert ist

1 ThisWorkbook.save

Alle geöffneten Arbeitsmappen speichern

Dadurch werden alle geöffneten Arbeitsmappen durchlaufen und jede einzelne gespeichert.

12345 Dim wb als ArbeitsmappeFür jedes wb in Application.Workbookswb.SpeichernNächstes wb

Speichern Sie alle geöffneten Arbeitsmappen, die nicht schreibgeschützt geöffnet wurden

Hinweis: Das Öffnen einer Arbeitsmappe im schreibgeschützten Modus verhindert, dass die Datei gespeichert wird.
Um die Datei zu speichern, müssen Sie Speichern unter verwenden und die Datei unter einem anderen Namen speichern.

1234567 Dim wb als ArbeitsmappeFür jedes wb in Application.WorkbooksWenn nicht wb ReadOnly dannwb.SpeichernBeenden, wennNächstes wb

Durch eine Variable definierte Arbeitsmappe speichern

Dadurch wird eine Arbeitsmappe gespeichert, die einer Arbeitsmappenobjektvariablen zugewiesen wurde.

1234 Dim wb als Arbeitsmappeset wb = workbooks("savefile.xlsm")wb.save

Speichern Sie eine Arbeitsmappe, die durch eine Zeichenfolgenvariable definiert ist

Dadurch wird eine Arbeitsmappe gespeichert, deren Name in einer Zeichenfolgenvariable gespeichert wurde.

1234 Wbstring als String dimmenwbstring = "savefile.xlsm"Arbeitsmappen(wbstring).save

Speichern Sie eine Arbeitsmappe, die durch die Reihenfolge definiert wurde, in der sie geöffnet wurde.

Hinweis: Die erste geöffnete Arbeitsmappe hätte 1, die zweite 2 usw.

1 Arbeitsmappen(1).save

Speichern einer Arbeitsmappe basierend auf einem Zellenwert

Dadurch wird eine Arbeitsmappe gespeichert, deren Name in einem Zellenwert gefunden wird.

1234 Wbstring als String dimmenwbstring = activeworkbook.sheets("sheet1").range("wb_save").valueArbeitsmappen(wbstring).save

Speichern unter - VBA

Der VBA-Befehl „Speichern unter“ speichert eine Excel-Datei als neue Datei, ähnlich wie wenn Sie auf das Symbol „Speichern unter“ klicken oder die Verknüpfung „Speichern unter“ (Alt > F > A) verwenden.
Oben haben wir alle Möglichkeiten identifiziert, um anzugeben, welche Arbeitsmappe gespeichert werden soll. Sie können genau diese Methoden verwenden, um Arbeitsmappen zu identifizieren, wenn Sie Speichern unter verwenden.

Speichern unter verhält sich ähnlich wie Speichern, außer dass Sie auch den Namen der neuen Datei angeben müssen.
Tatsächlich gibt es bei Speichern unter viele potenzielle Variablen, die definiert werden müssen:

SaveAs-Syntax:

123 Arbeitsmappenobjekt .SaveAs(FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru,TextCodepage, TextVisualLayout, Local)

Eine vollständige Beschreibung aller SaveAs-Argumente finden Sie unten. Vorerst konzentrieren wir uns auf die gängigsten Beispiele.
Hinweis: Diese Argumente können als String mit Klammern oder als definierte Variablen eingegeben werden.

Syntaxbeispiele zum Speichern unter:

Arbeitsmappe speichern unter – gleiches Verzeichnis

1 ActiveWorkbook.SaveAs Dateiname:= "neu"

oder

1 ActiveWorkbook.SaveAs "neu"

oder

1234 Wbstring als String dimmenwbstring = "neu"ActiveWorkbook.SaveAs Dateiname:= wbstring

Arbeitsmappe Speichern unter – Neues Verzeichnis

1 ActiveWorkbook.SaveAs Filename:= "C:\new"

oder

1234 Wbstring als String dimmenwbstring = "C:\neu"ActiveWorkbook.SaveAs Dateiname:= wbstring=

Arbeitsmappe Speichern unter – Neues Verzeichnis, Dateierweiterung angeben

1 ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx"

oder

1234 Wbstring als String dimmenwbstring = "C:\neu.xlsx"ActiveWorkbook.SaveAs Dateiname:= wbstring

Arbeitsmappe Speichern unter - Neues Verzeichnis, Dateierweiterung angeben - Alt-Methode

Sie können das Dateiformat auch in einem eigenen Argument angeben.

1234 .xlsx = 51 '(52 für Mac).xlsm = 52 '(53 für Mac).xlsb = 50 '(51 für Mac).xls = 56 '(57 für Mac)
1 ActiveWorkbook.SaveAs Filename:= "C:\new", FileFormat:= 51

Arbeitsmappe Speichern unter - Kennwort zur geöffneten Datei hinzufügen

1 ActiveWorkbook.SaveAs Dateiname:= "C:\new.xlsx", Passwort:= "Passwort"

Arbeitsmappe Speichern unter - Kennwort für Schreibberechtigungen hinzufügen

Wenn kein korrektes Kennwort angegeben wird, wird die Arbeitsmappe als schreibgeschützt geöffnet

1 ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", WriteRes:= "password"

Arbeitsmappe Speichern unter – schreibgeschützt empfohlen

TRUE, um ein Meldungsfeld anzuzeigen, in dem empfohlen wird, die Datei schreibgeschützt zu öffnen.

1 ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", ReadOnlyRecommended:= TRUE

Andere Beispiele zum Speichern unter

Dialogfeld "Speichern unter erstellen"

Dadurch wird das Dialogfeld „Speichern unter“ generiert, in dem der Benutzer aufgefordert wird, die Datei zu speichern.
Beachten Sie, dass dieser einfache Code möglicherweise nicht in allen Fällen geeignet ist.

1 Application.GetSaveAsFilename

Dialogfeld „Speichern unter“ mit bereitgestelltem Standarddateinamen erstellen

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Dialogfeld „Speichern unter“ mit bereitgestelltem Standarddateinamen erstellen

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Neue Arbeitsmappe erstellen und speichern

Dadurch wird eine neue Arbeitsmappe erstellt und sofort gespeichert.

123456 Dim wb als ArbeitsmappeSet wb = Workbooks.AddApplication.DisplayAlerts = Falsewb.SaveAs Dateiname:=”c:\Test1.xlsx”Application.DisplayAlerts = True

Speichern von Benachrichtigungen deaktivieren

Wenn Sie mit dem Speichern in VBA arbeiten, können Sie auf verschiedene Speicherwarnungen oder -aufforderungen stoßen. Um Warnungen zu deaktivieren, fügen Sie diese Codezeile hinzu:

1 Application.DisplayAlerts=False

und um Benachrichtigungen wieder zu aktivieren:

1 Application.DisplayAlerts=True
wave wave wave wave wave