Nur bestimmte Bereiche als *.csv exportieren
Ein ganzes Arbeitsblatt als *.csv zu speichern, das ist ja nicht so schwer. Das geht sogar ohne VBA. Wenn allerdings nur bestimmte Bereiche exportiert werden sollen oder sonstige Einschränkungen vorliegen, dann ist ein Makro erforderlich.
Im folgenden Beispiel sollen aus dem aktuellen Arbeitsblatt nur die Spalte 1:10 exportiert werden. Als zusätzliche Einschränkung gilt, dass Zeilen, die in diesen ersten 10 Spalten keinen Inhalt haben (also leer sind), auch nicht exportiert werden sollen. Dieser Code erfüllt die Forderungen:
Option Explicit
Sub alsCSVschreiben()
Dim Ze As Long, Sp As Integer
Dim FF As Integer
Dim FullPath As String
Dim lRow As Long
Dim Zeile As String, Zelle As String
lRow = Cells.Find(what:=”*”, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
FullPath = „D:\DataTest.csv”
FF = FreeFile
Open FullPath For Output As #FF
For Ze = 1 To lRow
If WorksheetFunction.CountA(Range(„A” & Ze & „:J” & Ze)) > 0 Then
Zeile = „”
For Sp = 1 To 9
Zelle = Cells(Ze, Sp)
If Not IsNumeric(Zelle) Then Zelle = Chr(34) & Zelle & Chr(34)
Zeile = Zeile & Zelle & „;”
Next Sp
Zelle = Cells(Ze, 10)
If Not IsNumeric(Zelle) Then Zelle = Chr(34) & Zelle & Chr(34)
Zeile = Zeile & Zelle
Print #1, Zeile
End If
Next Ze
Close #FF
MsgBox „Fertig!”
End Sub
Sie können den Code hier als *.zip (Inhalt: Text.Datei) herunterladen.