Tabellenblätter hart kopieren und in neue Datei speichern
Schritt-für-Schritt-Anleitung
Um ein Excel Tabellenblatt in eine neue Datei zu kopieren und dort zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code kopiert die Daten der Tabellenblätter „Abflüsse“ und „Versand“ in eine neue Datei, wobei nur die Werte und das Format übernommen werden.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub TabellenKopieren()
Const PFAD$ = "U:\" ' Speicherpfad anpassen
Const DNAME$ = "Test.xlsx" ' Dateiname anpassen
Dim WbQ As Workbook: Set WbQ = ThisWorkbook
Dim WbZ As Workbook
Set WbZ = Workbooks.Add
WbQ.Worksheets("Abflüsse").UsedRange.Copy
WbZ.Worksheets(1).Range("A1").PasteSpecial xlPasteValues
WbQ.Worksheets("Versand").UsedRange.Copy
WbZ.Worksheets(2).Range("A1").PasteSpecial xlPasteValues
WbZ.SaveAs PFAD & DNAME, xlWorkbookNormal
WbZ.Close True
End Sub
- Passe den Speicherpfad
PFAD$
und den Dateinamen DNAME$
an deine Bedürfnisse an.
- Schließe den VBA-Editor und führe das Makro aus, um die Tabellenblätter hart zu kopieren und in einer neuen Datei zu speichern.
Häufige Fehler und Lösungen
-
Fehler: "Die Datei kann nicht geöffnet werden."
Wenn du diese Fehlermeldung erhältst, könnte es daran liegen, dass in den Original-Blättern Makros vorhanden sind. In diesem Fall solltest du nur die Zell-Werte kopieren, um Probleme mit dem Dateiformat zu vermeiden.
-
Lösung: Verwende die .PasteSpecial
-Methode, um nur die Werte zu übertragen, wie im obigen Code gezeigt.
Alternative Methoden
- VBA für mehrere Tabellenblätter:
Du kannst auch mehrere Tabellenblätter auf einmal kopieren, indem du die
Sheets(Array(...)).Copy
Methode verwendest. Beispiel:
Sub MehrereTabellenKopieren()
Sheets(Array("Abflüsse", "Versand")).Copy
ActiveWorkbook.SaveAs Filename:="D:\Test\NeuerName.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub
- Manuelles Kopieren:
Wenn du es ohne VBA bevorzugst, kannst du die benötigten Blätter manuell kopieren und in eine neue Datei einfügen, indem du sie mit
STRG + C
und STRG + V
kopierst.
Praktische Beispiele
- Beispiel 1: Kopiere ein einzelnes Blatt in eine neue Datei:
Sub EinzelnKopieren()
Sheets("Abflüsse").Copy
ActiveWorkbook.SaveAs Filename:="D:\Test\Abflüsse.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub
- Beispiel 2: Kopiere mehrere Blätter und speichere sie in einer neuen Datei:
Sub AlleBlätterKopieren()
Sheets(Array("Abflüsse", "Versand")).Copy
ActiveWorkbook.SaveAs Filename:="D:\Test\Blätter.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub
Tipps für Profis
- Makrosicherheit: Achte darauf, dass die Makrosicherheit in Excel so eingestellt ist, dass das Ausführen von VBA-Codes erlaubt ist.
- Fehlerbehandlung: Verwende
On Error Resume Next
, um Fehler zu ignorieren und den Code fortzusetzen, wenn du dir nicht sicher bist, ob eine Datei existiert oder nicht.
- Automatisierung: Du kannst den Code in eine Schaltfläche in Excel einfügen, um die Ausführung zu erleichtern.
FAQ: Häufige Fragen
1. Frage
Wie kann ich mehrere Tabellenblätter in eine neue Datei kopieren?
Antwort: Du kannst die Sheets(Array(...)).Copy
Methode verwenden, um mehrere Blätter gleichzeitig zu kopieren.
2. Frage
Warum bekomme ich eine Fehlermeldung beim Speichern?
Antwort: Überprüfe, ob in den Original-Blättern Makros gespeichert sind. Wenn ja, speichere die neue Datei im .xlsm
Format, um die Makros zu erhalten.