Beim Erstellen einer CSV-Datei mithilfe der Menüs zum Exportieren eines Arbeitsblatts stellte Arkadiusz fest, dass er angeben kann, dass ein Semikolon (;)

verwendet werden soll als Feldtrennzeichen. Wenn er jedoch eine CSV-Datei mit einem Makro (FileFormat: = xlCSV oder xlCSVWindows) speichert, kann er kein Semikolon als Trennzeichen angeben.

Dies funktioniert in VBA so. Die Excel-Implementierung der Exportroutinen für VBA verwendet immer die regionalen Windows-Einstellungen, um zu bestimmen, wie Elemente in einer CSV getrennt werden sollen.

Insbesondere untersucht die Routine das Feld Listentrennzeichen für das Trennzeichen. Dies bedeutet, dass Sie bei Bedarf das Trennzeichen in ein Semikolon ändern können, indem Sie die Einstellung Listentrennzeichen in Ihrer Konfiguration der regionalen Einstellungen ändern.

Wenn Sie die regionalen Einstellungen nicht ändern möchten, können Sie stattdessen ein eigenes Makro schreiben, das die Datei auf die von Ihnen gewünschte Weise ausgibt.

Betrachten Sie für einen Moment das folgende Makro, das die Datei ausgibt:

Sub CreateFile()

FName = ActiveWorkbook.Name     If Right(FName, 4) = ".xls" Then         FName = Mid(FName, 1, Len(FName) - 4)

End If

Columns(1).Insert Shift:=xlToRight

For i = 1 To Range("B65000").End(xlUp).Row         TempString = ""

For j = 2 To Range("HA1").End(xlToLeft).Column             If j <> Range("HA1").End(xlToLeft).Column Then                 TempString = TempString & _                   Cells(i, j).Value & ";"

Else                 TempString = TempString & _                   Cells(i, j).Value             End If         Next         Cells(i, 1).Value = TempString     Next

Columns(1).Select     Selection.Copy     Workbooks.Add     Range("A1").Select     ActiveSheet.Paste     Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=FName & ".txt", _       FileFormat:=xlPrinter End Sub

Dieses Makro verfolgt einen einzigartigen Ansatz zum Erstellen der Ausgabedatei. Sie fügen eine Spalte links in Ihr Arbeitsblatt ein und verketten dann alle Daten rechts von dieser Spalte in die neu eingefügte Spalte A. Zwischen jedem Feld wird ein Semikolon eingefügt. Sobald dies erledigt ist, werden die Informationen in Spalte A abgerufen und in eine neue Arbeitsmappe geschrieben. Diese Arbeitsmappe wird dann im xlPrinter-Dateiformat auf der Festplatte gespeichert. Dies bedeutet, dass sie unverändert ohne Änderungen ausgegeben wird.

Wenn Sie einen direkteren Ansatz bevorzugen und die Informationen direkt in eine Datei schreiben, ohne Änderungen an Ihrem Arbeitsblatt vorzunehmen, sehen Sie sich das Makro in diesem Blog-Beitrag an:

https://web.archive.org/web/20060302021412/http:/www.dicks-blog.com:80/archives/2004/11/09/roll-your-own-csv/

Das Makro verwendet Kommas zwischen den einzelnen Feldern, kann jedoch leicht so geändert werden, dass stattdessen Semikolons verwendet werden.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (3232) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: