Irgendwie stehe ich heute auf der Leitung - müsste
einfach nur wissen, wie man ein Tabellenblatt einer Mappe
per VBA speichert. Habe schon im Archiv gesucht aber nichts
gefunden.
mfg. stephan
Irgendwie stehe ich heute auf der Leitung - müsste
einfach nur wissen, wie man ein Tabellenblatt einer Mappe
per VBA speichert. Habe schon im Archiv gesucht aber nichts
gefunden.
mfg. stephan
Option Explicit
Sub Copy_save()
Sheets("Tabelle1").Copy
ActiveWorkbook.SaveAs "C:\Beispiel\Test.xls"
End Sub
daran bin ich auch interessiert und hätte da noch eine Zusatzfrage: ist es auch möglich als Dateinamen automatisch den Inhalt zweier Zellen einzusetzen nach dem Muster:
ActiveWorkbook.SaveAs "C:\Beispiel\[A1] & [A2].xls" ?
Vielen Dank im Voraus
Gruß
Franz
toll, vielen Dank! Das hilft mir sehr weiter!
Danke und Gruß
Franz
Um ein aktives Arbeitsblatt in Excel per VBA zu speichern, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden:
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen
und wähle Modul
.Gib den VBA-Code ein:
Option Explicit
Sub Copy_save()
' Kopiere das aktive Arbeitsblatt
ActiveSheet.Copy
' Speichere die neue Arbeitsmappe
ActiveWorkbook.SaveAs "C:\Beispiel\Test.xls"
' Schließe die neue Arbeitsmappe
ActiveWorkbook.Close
End Sub
Passe den Speicherort an:
"C:\Beispiel\Test.xls"
nach deinen Wünschen.Führe das Makro aus:
ALT + F8
, wähle Copy_save
und klicke auf Ausführen
.Fehler 1: "Datei kann nicht gespeichert werden."
Fehler 2: "Aktives Arbeitsblatt nicht gefunden."
Eine andere Möglichkeit, ein aktives Arbeitsblatt zu speichern, besteht darin, den Namen des Arbeitsblatts dynamisch zu generieren. Hier ist ein Beispiel, wie das geht:
Option Explicit
Sub SaveActiveSheetWithDynamicName()
Dim A1Text As String
Dim A2Text As String
A1Text = Sheets("Tabelle2").[A1].Value
A2Text = Sheets("Tabelle2").[A2].Value
ActiveSheet.Copy
ActiveWorkbook.SaveAs "C:\Beispiel\" & A1Text & A2Text & ".xls"
ActiveWorkbook.Close
End Sub
Diese Methode nutzt die Werte aus den Zellen A1 und A2, um den Dateinamen zu erstellen.
Hier sind einige praktische Beispiele, die dir helfen, das Speichern von aktiven Arbeitsblättern zu automatisieren:
Speichern als XLSX-Datei:
ActiveWorkbook.SaveAs "C:\Beispiel\Test.xlsx", FileFormat:=xlOpenXMLWorkbook
Speichern mit Datum im Dateinamen:
Dim Dateiname As String
Dateiname = "Tabelle_" & Format(Date, "YYYYMMDD") & ".xlsx"
ActiveWorkbook.SaveAs "C:\Beispiel\" & Dateiname
On Error Resume Next
, um Fehler zu ignorieren, wenn das Speichern fehlschlägt, und füge eine Fehlerbehandlung hinzu, um den Benutzer zu informieren.1. Kann ich mehrere aktive Blätter gleichzeitig speichern? Ja, du kannst eine Schleife verwenden, um durch alle aktiven Blätter zu iterieren und jedes einzeln zu speichern.
2. Unterstützt VBA das Speichern im PDF-Format?
Ja, du kannst das aktive Blatt auch als PDF speichern, indem du ActiveSheet.ExportAsFixedFormat
verwendest.
3. Wie kann ich sicherstellen, dass die Datei überschrieben wird, wenn sie bereits existiert? Du kannst die Existenz der Datei vor dem Speichern überprüfen und die Datei löschen, falls sie bereits vorhanden ist.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen