Speichern unter in Microsoft Excel VBA
-
Was ist die
SaveAs
-Funktion in VBA - Beispiel 1: Arbeitsmappe speichern
- Beispiel 2: Erstellen Sie eine neue Arbeitsmappe und speichern Sie sie
- Beispiel 3: Speichern Sie die aktive Arbeitsmappe
- Beispiel 4: Alle aktiven Arbeitsmappen speichern
-
Beispiel 5: Verwenden Sie die
SaveAs
-Funktionsparameter - Abschluss
VBA bietet Entwicklern eine Vielzahl unterschiedlicher Funktionen und Features. In diesem Artikel erfahren Sie mehr über die SaveAs
-Methode in VBA.
Was ist die SaveAs
-Funktion in VBA
Die SaveAs
-Methode speichert ein Arbeitsmappenobjekt an einem angegebenen Pfadziel in Excel VBA. Eine Arbeitsmappe ist eine Excel-Datei, die die Arbeitsblätter enthält, an denen Sie arbeiten.
Diese Arbeitsmappen enthalten wichtige Daten, die wir mit der Speichern unter
-Funktion auf Ihrem Computer speichern können.
Hinweis: VBA verfügt auch über eine
Speichern
-Funktion zum Speichern einer Datei, die jedoch keinen bestimmten Ort benötigt. Wenn Sie speichern möchten, ohne den Code zu schreiben, können Sie dies außerdem manuell mit den OptionenSpeichern
undSpeichern unter
im MenüDatei
oder mit Strg+S-Verknüpfung.
Syntax
Die Syntax für die SaveAs
-Funktion in VBA ist wie folgt:
expression.SaveAs (FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
Schauen wir uns die Parameter der Funktion an:
Ausdruck
: Der Name der Variablen repräsentiert das Arbeitsmappenobjekt. Beispielsweise können wir die VariableActiveWorkbook
verwenden, um die aktuell geöffnete Arbeitsmappe anzugeben.Dateiname
: Dies ist der Dateiname, den Sie speichern möchten, optional mit Pfad. Die Datei wird im aktuellen Ordner gespeichert, wenn der Pfad nicht angegeben ist.Dateiformat
: Gibt an, in welchem Format Sie die Datei speichern möchten, wodurch auch die Endung bestimmt wird. Wenn nichts angegeben ist und Sie Ihre Datei zum ersten Mal speichern, ist das verwendete Format die verwendete Excel-Version.Passwort
: Wenn Sie ein Passwort für Ihre Datei behalten möchten, können Sie es hier in einer Zeichenfolge von15
Zeichen oder weniger angeben.WriteResPassword
: Dieses Passwort wird für die Schreibreservierung verwendet. Wenn jemand die Datei bearbeiten möchte, muss er dieses Passwort angeben, oder sie wird im schreibgeschützten Modus geöffnet.ReadOnlyRecommended
: Wird hierTrue
gesendet, wird beim Öffnen der Datei eine Meldung angezeigt, dass empfohlen wird, diese Datei im Nur-Lesen-Modus zu öffnen.CreateBackup
: Wird hierTrue
gesendet, wird eine Backup-Datei erstellt.Zugriffsmodus
: Hier können Sie den Zugriffsmodus für das Speichern festlegen, z. B. exklusiv oder standardmäßig.ConflictResolution
: Dieser Parameter legt fest, wie dieSaveAs
-Methode Konflikte löst, die beim Speichern der Datei auftreten. Eine Möglichkeit besteht beispielsweise darin, ein Dialogfeld bereitzustellen, das dem Benutzer die Entscheidung überlässt.AddToMru
: Der Standardwert dafür istFalse
, aber Sie könnenTrue
angeben, wenn Sie diese Datei zur zuletzt verwendeten Liste hinzufügen möchten.TextCodepage
: Dieser Parameter wird in Excel für alle Sprachen ignoriert.TextVisualLayout
: Auch dieser Parameter wird in Excel für alle Sprachen ignoriert.Local
: Der Standardwert dafür istFalse
, wodurch die Datei in der Sprache von VBA, also US-Englisch, gespeichert wird. Wenn Sie hier einTrue
senden, wird die Datei in der Sprache von Microsoft Excel gespeichert.
Hinweis: Alle Parameter der
SaveAs
-Funktion sind optional und müssen nicht geschrieben werden.
Nachdem Sie nun die Syntax der SaveAs
-Methode kennen, wollen wir uns einige Beispiele ansehen, damit Sie sie besser verstehen.
Beispiel 1: Arbeitsmappe speichern
Dieses Beispiel zeigt, wie Sie eine Arbeitsmappe mit der Methode SaveAs
durch Angabe ihres Namens an einem bestimmten Ort speichern können. Der Code dafür lautet wie folgt:
Sub Example1()
Workbooks("Example.xlsm").SaveAs "D:\Example.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Beispiel 2: Erstellen Sie eine neue Arbeitsmappe und speichern Sie sie
Hier ist ein Beispiel, das eine neue Arbeitsmappe erstellt, den Benutzer nach einem Namen fragt und diese dann speichert. Die Funktion Arbeitsmappen.Hinzufügen
erstellt eine neue Arbeitsmappe und fügt sie der Liste der aktuell aktiven Arbeitsmappen hinzu.
Die Funktion GetSaveAsFileName
holt sich den Dateinamen vom Benutzer und dient auch zur Angabe des Pfades. Die manuelle Auswahl des Pfads ist nützlich, wenn wir für jede Datei einen anderen Pfad wünschen.
Der Code ist unten angegeben.
Sub Example2()
Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
'The loop will provide a check for validating the file name
Loop Until fName <> False
NewBook.SaveAs Filename:=fName
End Sub
Beispiel 3: Speichern Sie die aktive Arbeitsmappe
Dieses Beispiel zeigt, wie Sie die Variable ActiveWorkbook
verwenden können, um die aktuell geöffnete Datei zu speichern. Während Sie den Dateinamen im Pfad angeben, müssen Sie ihn mit dem Operator &
und der Methode ActiveWorkbook.Name
verketten, wie im folgenden Code gezeigt.
Sub Example3()
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
End Sub
Beispiel 4: Alle aktiven Arbeitsmappen speichern
Wenn es mehr als eine Arbeitsmappe gibt, an der Sie gerade arbeiten, können Sie immer noch die Variable ActiveWorkbook
verwenden, um alle zu speichern, indem Sie eine Schleife verwenden. Dies kann mit dem folgenden Code erfolgen.
Sub Example4()
Dim Wb As Workbook
For Each Wb In Workbooks
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
Next Wb
End Sub
Beispiel 5: Verwenden Sie die SaveAs
-Funktionsparameter
In diesem Beispiel werden wir sehen, wie die meisten Parameter der SaveAs
-Funktion angegeben werden, da sie in den vorherigen Beispielen fehlten. So können Sie sie in Code schreiben:
Sub Example5()
Set WB = Workbooks.Add
WB.SaveAs Filename:="D:Example5.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Abschluss
Dies fasst unsere Diskussion über die SaveAs
-Funktion in VBA zusammen, die eine nützliche Programmiersprache ist, die Microsoft Office-Benutzern wertvolle Zeit spart. Wir hoffen, dass Sie die verschiedenen Möglichkeiten kennengelernt haben, wie die Methode SaveAs
verwendet werden kann, um Dateien an einem bestimmten Ort zu speichern.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub