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