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

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website