Rückkehr in VBA-Code-Beispiele

VBA Datei speichern – 20 einfache Beispiele

In this Article

In diesem VBA-Tutorial erfahren Sie, wie Sie eine Datei mit den Befehlen „Speichern“ und „Speichern unter“ in VBA speichern können.

Arbeitsmappe speichern – VBA

Der VBA-Befehl „Speichern“ speichert eine Excel-Datei ähnlich wie das Klicken auf das Symbol „Speichern“ oder die Verwendung der Tastenkombination Speichern (CTRL + S).

Speichern einer bestimmten Arbeitsmappe

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

Workbooks("savefile.xlsm").Save

Die aktive Arbeitsmappe speichern

Hinweis: Dies ist die aktuell aktive Arbeitsmappe von innerhalb des VBA-Codes, die sich von ThisWorkbook, das den laufenden Code enthält, unterscheidet.

ActiveWorkbook.Save

Speichern der Arbeitsmappe, in der der Code gespeichert ist

ThisWorkbook.Save

Alle geöffneten Arbeitsmappen speichern

Damit werden alle geöffneten Arbeitsmappen in einer Schleife durchlaufen und jede einzelne gespeichert.

Dim wb as Workbook

For Each wb In Application.Workbooks
	wb.Save
Next wb

Alle geöffneten Arbeitsmappen, die nicht schreibgeschützt geöffnet wurden, speichern

Hinweis: Wenn Sie eine Arbeitsmappe im schreibgeschützten Modus öffnen, kann die Datei nicht gespeichert werden. Um die Datei zu speichern, müssen Sie „Speichern unter“ verwenden und sie unter einem anderen Namen speichern.

Dim wb as Workbook

For Each wb In Application.Workbooks
	If Not wb.ReadOnly then
		wb.Save
	End if
Next wb

Eine durch eine Variable definierte Arbeitsmappe speichern

So wird eine Arbeitsmappe gespeichert, die einer Arbeitsmappenobjektvariable zugewiesen ist.

Dim wb as Workbook

set wb = Workbooks("savefile.xlsm")
wb.save

Speichern einer Arbeitsmappe, die durch eine String-Variable definiert ist

Damit wird eine Arbeitsmappe gespeichert, deren Name in einer String-Variable gespeichert ist.

Dim wbstring as string

wbstring = "savefile.xlsm"
Workbooks(wbstring).save

Speichern einer Arbeitsmappe in der Reihenfolge, in der sie geöffnet wurde.

Hinweis: Die erste geöffnete Arbeitsmappe würde die Nummer 1 haben, die zweite die Nummer 2, usw.

Workbooks(1).Save

Speichern einer Arbeitsmappe basierend auf einem Zellenwert

Damit wird eine Arbeitsmappe gespeichert, deren Name in einem Zellenwert enthalten ist.

Dim wbstring as string

wbstring = activeworkbook.sheets("sheet1").range("wb_save").value
workbooks(wbstring).save

Speichern unter – VBA

Der VBA-Befehl „Speichern unter“ speichert eine Excel-Datei als neue Datei, ähnlich wie das Klicken auf das Symbol „Speichern unter“ oder die Verwendung des Shortcuts Speichern unter (Alt > F > A). Oben haben wir alle Möglichkeiten gezeigt, um die zu speichernde Arbeitsmappe anzugeben. Sie können genau dieselben Methoden verwenden, um Arbeitsmappen zu identifizieren, wenn Sie den Befehl „Speichern unter“ verwenden. „Speichern unter“ verhält sich ähnlich wie Speichern, mit dem Unterschied, dass Sie auch den Namen der neuen Datei angeben müssen. In der Tat hat „Speichern unter“ viele potenzielle Variablen zu definieren:

Syntax von „Speichern unter“:

workbook object .SaveAs(FileName, FileFormat, Password, WriteResPassword, _
ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _
AddToMru,TextCodepage, TextVisualLayout, Local)

Eine vollständige Beschreibung aller Speichern-Unter-Argumente ist weiter unten enthalten. Im Folgenden werden wir uns auf die gängigsten Beispiele konzentrieren.

Hinweis: Diese Argumente können als String mit Klammern oder als definierte Variablen eingegeben werden.

Beispiele für Speichern-Unter-Syntax:

Arbeitsmappe Speichern unter – Gleiches Verzeichnis

ActiveWorkbook.SaveAs Filename:= "neu"

oder

ActiveWorkbook.SaveAs "neu"

oder

Dim wbstring as string

wbstring = "neu"
ActiveWorkbook.SaveAs Filename:= wbstring

Arbeitsmappe Speichern unter – Neues Verzeichnis

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

oder

Dim wbstring as string

wbstring = "C:\neu"
ActiveWorkbook.SaveAs Filename:= wbstring=

Arbeitsmappe speichern unter – neues Verzeichnis, Dateierweiterung angeben

ActiveWorkbook.SaveAs Filename:= "C:\neu.xlsx"

oder

Dim wbstring as string

wbstring = "C:\neu.xlsx"
ActiveWorkbook.SaveAs Filename:= wbstring

Arbeitsmappe Speichern unter – Neues Verzeichnis, Dateierweiterung angeben – Alternative Methode

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

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

Arbeitsmappe speichern unter – Kennwort zum Öffnen der Datei hinzufügen

ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", Password:= "Kennwort"

Arbeitsmappe Speichern unter – Kennwort für Schreibberechtigung hinzufügen

Wenn das richtige Kennwort nicht angegeben wird, wird die Arbeitsmappe als schreibgeschützt geöffnet

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

Arbeitsmappe speichern unter – schreibgeschützt empfohlen

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

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

Andere Beispiele von „Speichern Unter“

Dialogfeld für „Speichern unter“ erstellen

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

Application.GetSaveAsFilename

Dialogfeld für „Speichern unter“ mit vorgegebenem Dateinamen erstellen

Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Dialogfeld für „Speichern unter“ mit vorgegebenem Standarddateinamen erstellen

Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Neue Arbeitsmappe erstellen und speichern

Dies erstellt eine neue Arbeitsmappe und speichert sie sofort.

Dim wb As Workbook

Set wb = Workbooks.Add
Application.DisplayAlerts = False
wb.SaveAs Filename:="c:\Test1.xlsx"
Application.DisplayAlerts = True

Speicherwarnungen deaktivieren

Bei der Arbeit mit dem Speichern in VBA stoßen Sie möglicherweise auf verschiedene Speicherwarnungen oder Aufforderungen. Um Warnungen zu deaktivieren, fügen Sie diese Codezeile ein:

Application.DisplayAlerts=False

und um Warnungen wieder zu aktivieren:

Application.DisplayAlerts=True

 

VBA-Programmierung leicht gemacht

Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – ein VBA-Code-Builder, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu programmieren!

automacro uebersicht arbeitsmappen speichern als

 

Mehr erfahren!