Excel VBA Speichern unter
Wenn Sie häufig mit Microsoft Excel arbeiten, müssen Sie die Funktion Speichern unter verwenden, mit der Sie die aktuell geöffnete Arbeitsmappe unter einem anderen Namen oder in einem anderen Format (Excel-Makrofähig, CSV, PDF usw.) speichern können. Mit dieser Methode können Sie die Datei auch in einem anderen Ordner speichern. Ist es jedoch möglich, dieselbe Funktion unter VBA zu verwenden? Die Antwort ist ein absolutes Ja! Wir haben die Funktion Speichern unter auch unter VBA, die uns hilft, all diese oben genannten Aufgaben zusammen mit einigen zusätzlichen Vorteilen auszuführen (offensichtlich ist die Automatisierung von Dingen einer der Vorteile). In diesem Artikel werden wir uns verschiedene Beispiele für die Funktion VBA SAVE AS ansehen.
Formel für die Funktion Speichern unter in Excel VBA
Sehen wir uns die Formel für die Funktion Speichern unter in VBA an.
Wo,
- Dateiname - Name der zu speichernden Arbeitsmappe.
- FileFormat - Dateiformat, in dem die Datei gespeichert werden muss (z. B. PDF, CSV usw.)
- Passwort - Passwort zum Schutz der Arbeitsmappe (Auf die Arbeitsmappe kann nicht ohne Passwort zugegriffen werden)
- WriteResPassword - Reservierungskennwort für die Arbeitsmappe schreiben.
- ReadOnlyRecommended - Erkennt, ob die Arbeitsmappe im schreibgeschützten Format gespeichert ist oder nicht.
- CreateBackup - Bestimmt, ob eine Sicherungsdatei für die Arbeitsmappe erstellt wird oder nicht.
- AccessMode - Erkennt den Zugriffsmodus für die Arbeitsmappe.
- ConflictResolution - Erkennt die Konflikte, die auftreten, wenn die Arbeitsmappe freigegeben wird und von mehr als einem Benutzer verwendet wird.
- AddToMru - Überprüft, ob die Arbeitsmappe unter der zuletzt verwendeten Datei hinzugefügt wurde oder nicht.
- Lokal - Überprüft, ob die Arbeitsmappe mit den Gesetzen von Excel (lokale Sprache) oder mit den VBA-Gesetzen (US-Englisch) gespeichert ist.
Stille! Viele Argumente richtig? Was aber, wenn ich Ihnen sage, dass all diese Argumente optional sind und bei Verwendung der Funktion VBA SAVE AS übersprungen werden können? Es ist jedoch richtig, dass dies die Argumente sind, die die Verwendung von VBA SaveAs flexibler machen. "Ausdruck" am Anfang der Syntax ist nichts anderes als ein Ausdruck, gegen den diese Funktion verwendet werden kann. Like Workbook ist der Ausdruck, mit dem SaveAs verwendet werden kann.
Beispiele zum Speichern von Excel-Dateien mit der Funktion "Speichern unter" von VBA
Nachfolgend finden Sie verschiedene Beispiele zum Speichern von Excel-Dateien mit der Funktion "Speichern unter" von VBA.
Sie können diese VBA-Vorlage "Als Excel speichern" hier herunterladen - VBA-Vorlage "Als Excel speichern"Beispiel 1 - Wie speichere ich eine Kopie der Arbeitsmappe unter einem anderen Namen?
Mal sehen, wie wir die aktuelle Arbeitsmappe unter einem anderen Namen speichern können.
Führen Sie die folgenden Schritte aus, um die Funktion "Speichern unter" in Excel VBA zu verwenden:
Schritt 1: Fügen Sie unter Visual Basic Editor (VBE) ein neues Modul hinzu. Gehen Sie zu Einfügen und wählen Sie dann Modul.
Schritt 2: Definieren Sie eine neue Unterprozedur, in der ein Makro gespeichert werden kann.
Code:
Sub SaveAs_Ex1 () End Sub
Schritt 3: Definieren Sie eine neue Variable, die den Namen enthalten kann, unter dem die Datei gespeichert werden soll.
Code:
Sub SaveAs_Ex1 () Dim newName As String End Sub
Schritt 4: Verwenden Sie nun den Zuweisungsoperator, um dieser Variablen einen Namen zuzuweisen, unter dem die aktuelle Datei gespeichert werden kann.
Code:
Sub SaveAs_Ex1 () Dim newName As String newName = "Example1" End Sub
Schritt 5: Verwenden Sie nun die Funktion SaveAs mit dem Argument FileName, um die Datei unter dem Namen "Example1" zu speichern.
Code:
Sub SaveAs_Ex1 () Dim newName As String newName = "Example1" ActiveWorkbook.SaveAs Dateiname: = newName End Sub
Schritt 6: Dies ist es, führen Sie nun diesen Code durch Drücken von F5 oder manuell über die Schaltfläche Ausführen aus und sehen Sie sich die Ausgabe an.
Sie können sehen, dass eine Datei mit dem Namen " Example1 " in Documents gespeichert wird.
Wenn Sie es notiert haben könnten, wird die Datei als Macro-Enabled File gespeichert, da die Originaldatei, für die ich die SaveAs-Funktion verwendet habe, eine Datei mit Macro-Enabled ist. Dies bedeutet, dass diese Funktion in VBA das Dateiformat der vorherigen Datei automatisch überprüft und im selben Format speichert. Außerdem wird die Datei standardmäßig in " Dokumente" unter " Dieser PC" gespeichert. Dieser Standardspeicherort kann zum Zeitpunkt der Definition des Blattnamens explizit angegeben werden.
Beispiel 2 - Speichern der Arbeitsmappe mit dem vom Benutzer angegebenen Namen
Ist es möglich, anstelle des ursprünglichen Namens einen Code zu schreiben, mit dem ein Benutzer das Arbeitsblatt unter dem Namen seiner Wahl speichern kann, der mit der Funktion "Speichern unter" in Excel identisch ist?
Führen Sie die folgenden Schritte aus, um die Funktion "Speichern unter" in Excel VBA zu verwenden.
Schritt 1: Definieren Sie eine neue Subprozedur unter dem neu eingefügten Modul, in der das Makro gespeichert werden kann.
Code:
Sub SaveAs_Ex2 () End Sub
Schritt 2: Definieren Sie eine neue Variable, die den Wert des benutzerdefinierten Namens enthalten kann.
Code:
Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant End Sub
Der Grund für die Definition dieser Variablen als Variant ist, dass dieser Datentyp Namenskonventionen vielseitig macht. Beispielsweise kann ein Benutzer einige zusätzliche Sonderzeichen (die in Namenskonventionen zulässig sind) oder auch Datumsangaben unter dem Dateinamen hinzufügen.
Schritt 3: Geben Sie nun mithilfe einer Zuweisungsoperator- und Funktionskombination namens application.GetSaveAsFilename eine Anweisung ab, mit der das System einen benutzerdefinierten Namen annehmen kann. Sehen Sie im folgenden Screenshot, wie dies erreicht wurde.
Code:
Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename End Sub
Schritt 4: Verwenden Sie das bedingte IF, um sicherzustellen, dass der vom Benutzer eingegebene Name gemäß den Namenskonventionen gültig ist.
Code:
Sub SaveAs_Ex2 () Spreadsheet_Name als Variant dimmen Spreadsheet_Name = Application.GetSaveAsFilename If Spreadsheet_Name False Then End Sub
Diese Bedingung prüft, ob der vom Benutzer zum Speichern des Arbeitsblatts angegebene Name den für die Benennung einer Datei festgelegten Namenskonventionen entspricht oder nicht.
Schritt 5: Notieren Sie sich eine Anweisung, die für die gegebene IF-Bedingung ausgewertet wird.
Code:
Sub SaveAs_Ex2 () Tabellenkalkulationsname als Variante dimmen Tabellenkalkulationsname = Application.GetSaveAsFilename If Tabellenkalkulationsname False Then ActiveWorkbook.SaveAs Filename: = Tabellenkalkulationsname End Sub
Dieser Code wird ausgewertet, sobald die IF-Bedingung erfüllt ist. In diesem Fall wird die aktive Arbeitsmappe unter dem in der Variablen Spreadsheet_Name definierten Namen gespeichert (der benutzerdefiniert sein wird).
Schritt 6: Beenden Sie die IF-Schleife und führen Sie diesen Code aus, um die Ausgabe zu sehen.
Code:
Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename If Spreadsheet_Name False Then ActiveWorkbook.SaveAs Filename: = Spreadsheet_Name End If End Sub
Schritt 7: Sobald Sie diesen Code ausführen, wird das Dialogfeld Speichern unter angezeigt, in dem Sie den Namen Ihrer Wahl eingeben und die Datei speichern können.
Beispiel # 3 - Wie speichere ich eine Datei als PDF mit der Excel VBA SaveAs Funktion?
Angenommen, Sie haben die unten angegebenen Daten in Ihrem Excel-Blatt und müssen sie in PDF konvertieren.
Führen Sie die folgenden Schritte aus, um diese Datei mit der Funktion "Speichern unter" von VBA in eine PDF-Datei zu konvertieren:
Schritt 1: Definieren Sie eine neue Unterprozedur zum Speichern eines Makros.
Code:
Sub SaveAs_PDF_Ex3 () End Sub
Schritt 2: Verwenden Sie jetzt den folgenden Code, um diese Datei als PDF-Datei zu speichern.
Code:
Sub SaveAs_PDF_Ex3 () ActiveSheet.SaveAs Filename: = "Vba Save as.pdf" End Sub
Schritt 3: Führen Sie diesen Code aus, und unter Dieser PC> Dokumente wird eine PDF-Datei generiert.
In diesem Code ermöglicht ActiveSheet.SaveAs das Speichern der Datei mit demselben Namen. Da wir die Endung als .pdf am Ende der Datei hinzugefügt haben, wird sie in eine PDF-Datei exportiert. Sie können das Bild oben als Referenz sehen.
Dinge, an die man sich erinnern sollte
- Der Standardspeicherort für die unter VBA SaveAs verwendete Datei lautet Dieser PC> Dokumente. Sie können das Verzeichnis jedoch zum Zeitpunkt der Definition des Dateinamens manuell angeben.
- Standardmäßig wird die mit VBA SaveAs gespeicherte Datei im Format der Originaldatei gespeichert. Sie kann jedoch auch gemäß den Benutzeranforderungen zum Zeitpunkt der Definition der Variablen definiert werden.
Empfohlene Artikel
Dies ist eine Anleitung zum Speichern unter in VBA. Hier wird erläutert, wie Sie die Datei mit der Excel VBA-Funktion "Speichern unter" zusammen mit einem Beispiel und einer herunterladbaren Excel-Vorlage speichern. Im Folgenden finden Sie einige nützliche Excel-Artikel zu VBA -
- VBA Exit Sub
- Erstellen Sie eine Tabelle in Excel
- VBA-Objekt
- Excel Autosave