Tabellen mit VBA als Textdateien exportieren
Mit Hilfe eines VBA-Programms möchten Sie eine Excel-Tabelle ins Textformat speichern. Dabei sollen die Spalten durch ein Semikolon getrennt sein. Das Problem: Das VBA-Programm nutzt nur Kommata zum Unterteilen.
Das ist ein Fehler von Excel 97 beim Speichern von CSV-Dateien, die als Trennzeichen das Semikolon verwenden. Während das Programm beim Speichern über »Datei | Speichern unter« mit dem Strichpunkt arbeitet, nutzt das englische VBA fälschlicherweise das englische Trennzeichen – also ein Komma. In Excel 2000 ist dieses Problem behoben.
Um auch mit Excel 97 per VBA eine Textdatei mit Semikola als Trennzeichen zu erzeugen, müssen Sie Ihre Exportroutine wie folgt anpassen:
Sub exportCSV() On Error GoTo Err_exportCSV
Dim mySection As Object æ mySection Dim myRow As Object æ Zeile Dim myCell As Object æ Zelle Dim strSeparator As String Dim strFile As String Dim strTemp As String Const DlgMeldung = äGeben Sie bitte Pfad und Dateinamen der Zieldatei ein!ô Const DlgTitel = äEingabe der Zieldateiô Const Trennzeichen As String = ä;ô
strFile = InputBox(DlgMeldung, DlgTitel, äô) strSeparator = äô Set mySection = ActiveSheet.UsedRange Open strFile For Output As #1 For Each myRow In mySection.Rows For Each myCell In myRow.Cells If InStr(1, myCell.Text, ä;ô) > 0 Then strTemp = strTemp & strSeparator & äôäô & CStr(myCell.Text) & äôäô Else strTemp = strTemp & strSeparator & CStr(myCell.Text) End If strSeparator = Trennzeichen Next Print #1, strTemp strTemp = äô strSeparator = äô Next
Close #1 Set mySection = Nothing
Exit_exportCSV: Exit Sub
Err_exportCSV: MsgBox Err.Description Resume Exit_exportCSV
End Sub
Das gesamte Listing finden Sie auf der Heft-CD CHIP-Code CSVEXPRT.
|