Datenexport mit beliebigen Trennzeichen

Mit diesem Makro können Sie beliebige Zellinhalte als Ascii-Datei in eine Text-Datei exportieren.

Es kann ein beliebiges Trennzeichen verwendet werden.

So sehen die zu exportierenden Daten aus:
  A B C D
1 123,5 2,98 3,55 2,15
2 20,66 45,66 2,3 4,25
3 55,3 64,6 45,2 1,11


Sub ascii_datei_exportieren()
Close #1

'Öffnen der Textdatei
Open "d:\temp\text.txt" For Output As 1

'Schleife für Zeilen
For zeile = 1 To 3
    Text = ""
        'Schleife für Süalten
        For spalte = 1 To 4
            Text = Text & CDbl(Cells(zeile, spalte))
        If spalte < 4 Then Text = Text & ";" 'Trennzeichen = ;
        Next
    Print #1, Text
Next

'Schließen der Textdatei
Close #1
End Sub


Es wird eine Text-Datei (ASCII-Datei) im Verzeichnis d:\temp\ mit folgendem Inhalt erzeugt:

123,5;2,98;3,55;2,15
20,66;45,66;2,3;4,25
55,3;64,6;45,2;1,11

Die Zahlen wurden mit einem Semikolon getrennt, da dieses als Trennzeichen angegeben wurde.

Wenn Sie neben Zahlen auch Textfelder exportieren möchten, dann ändern Sie den Code wie folgt ab:

Sub ascii_datei_exportieren()
Close #1

'Öffnen der Textdatei
Open "d:\temp\text.txt" For Output As 1

'Schleife für Zeilen
For zeile = 1 To 3
    Text = ""
        'Schleife für Süalten
        For spalte = 1 To 4
            Text = Text & CVar(Cells(zeile, spalte))
        If spalte < 4 Then Text = Text & ";" 'Trennzeichen = ;
        Next
    Print #1, Text
Next

'Schließen der Textdatei
Close #1
End Sub


Sie sagen jetzt, der schneller Weg wäre, einfach eine CSV-Datei zu erzeugen. Wenn Sie es manuell machen funktioniert es. Möchten Sie jedoch per VBA eine CSV-Datei erzeugen, so verwendet Excel die amerikanische Zahlen- und Datumsschreibweise und es kommt zu Problemen. In diesem Fall ist es besser Sie verwenden das oben stehende Makro