Vba: so speichern sie blätter als csv-dateien (mit beispiel)
Sie können die folgende Syntax in VBA verwenden, um jedes Blatt einer Arbeitsmappe in einer CSV-Datei zu speichern:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
Dieses spezielle Makro speichert jedes Blatt der aktuell aktiven Arbeitsmappe in einer CSV-Datei.
CSV-Dateien werden in dem in der SaveDir- Variablen angegebenen Pfad gespeichert.
Hinweis : Die Zeile „Application.DisplayAlerts=False“ weist VBA an, beim Speichern von Dateien vorübergehend alle Anzeigewarnungen in Excel zu deaktivieren.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Blätter mit VBA als CSV-Dateien speichern
Angenommen, wir haben eine Excel-Arbeitsmappe mit zwei Blättern.
Das erste Blatt heißt player_stats und enthält Statistiken über verschiedene Basketballspieler:
Das zweite Blatt heißt team_info und enthält Informationen über verschiedene Basketballteams:
Nehmen wir an, wir möchten jedes dieser Blätter als einzelne CSV-Dateien auf dem Desktop unseres Computers speichern.
Dazu können wir das folgende Makro erstellen:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
Sobald dieses Makro ausgeführt wird, wird jedes Blatt als CSV-Datei auf unserem Desktop gespeichert.
Wenn ich zum Desktop meines Computers navigiere, kann ich jede dieser einzelnen CSV-Dateien mit Dateinamen sehen, die mit den Blattnamen übereinstimmen:
Wenn ich die CSV-Datei „player_stats“ mit Notepad öffne, kann ich sehen, dass die Werte in der Excel-Datei als durch Kommas getrennte Werte gespeichert wurden:
Beachten Sie, dass wir in diesem Beispiel zwei Blätter als einzelne CSV-Dateien in unserer Arbeitsmappe speichern konnten, dasselbe Makro jedoch mit einer beliebigen Anzahl von Blättern funktioniert.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
VBA: So zählen Sie die Anzahl der Blätter in einer Arbeitsmappe
VBA: So extrahieren Sie Daten aus einer anderen Arbeitsmappe
VBA: So fügen Sie neue Blätter hinzu