Angepasste CSV-Exporte aus Excel
Basierend auf meinem letzten Artikel zum Thema Excel und CSV hier ein kurzes Beispiel, wie man aus Excel heraus Daten in ziemlich beliebigem Format (hier Komma als Spaltentrenner, Punkt als Dezimalzeichen) exportieren kann.
Ausgangspunkt ist eine kleine Excel-Datei mit vier Spalten und drei Zeilen.
Der VBA Code, adaptiert von excel-easy.com und codevba.com, exportiert diese in eine CSV Datei (im ANSI-Encoding), wenn der Spalten-Index der exportierten Spalte kleiner ist als die Breite der Range, dann wird ein Komma nach der Spalte eingefügt, sonst (am Ende der Range) ein Zeilenumbruch.
Option Explicit Sub Schaltfläche1_Klicken() Dim fso, f, currentColumn Dim rng As Range, cell As Range Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("E:\SearchReplaceVBA\export.csv", 2, True) ' https://www.excel-easy.com/vba/examples/loop-through-defined-range.html ' http://codevba.com/excel/for_each_cell_in_range.htm Set rng = Sheets(1).Range("A1:D3") For Each cell In rng.Cells With cell ' Debug.Print .Address & ":" & .Value & ":" & .Row & ":" & .Column currentColumn = .Column f.write (Replace(.Value, ",", ".")) If currentColumn < rng.Columns.Count Then f.write (",") Else f.write (vbNewLine) End If End With Next cell End Sub |
Ergebnis
Feld A,Feld B,Feld C,Feld D 88.4599201649139,9.76226327089422,AAA,45.4279124487558 22.6480222965468,82.5612661495282,BBB,96.7699232025441