AW: Standard-Trennzeichen Komma oder Semikolon
24.11.2008 17:02:00
fcs
Hallo larsinator,
die eingestellten Parameter unter Text-in-Spalten kann man meines Wissens nicht auslesen. Man sollte deshalb bei diesem Befehl alle Parameter setzen, um Überraschungen zu vermeiden. ggf. in einer Folgezeile die Einstellung sogar auf eine Wunscheinstellung zurücksetzen.
Sub aatest()
Range("A:A").TextToColumns , DataType:=1, Semicolon:=True, Comma:=False
'Einstellung zurücksetzen
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = "test"
Cells(Rows.Count, 1).End(xlUp).TextToColumns , DataType:=1, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, other:=False
Cells(Rows.Count, 1).End(xlUp).ClearContents
End Sub
Zum Laden von CSV-Dateien in Excel verwende ich meist folgende Routine, da unter VBA CSV-Dateien standardmäßig oft nach US-Standards geladen werden.
Dabei wird die CSV-Datei nach der Dateiauswahl in eine temporäre TXT-Datei kopiert. Das Öffnen der TXT-Datei kann man in EXCEL-VBA mit den Parametern gut steuern. Nach dem Import der Daten wird die TXT-datei wieder gelöscht.
Gruß
Franz
Sub CSV_Holen()
Dim varAuswahl, strDateiTXT As String, wbTXT As Workbook
varAuswahl = Application.GetOpenFilename(Filefilter:="CSV(*.csv),*csv")
If Not varAuswahl = False Then
strDateiTXT = Left(varAuswahl, Len(varAuswahl) - 3) & "txt"
VBA.FileCopy varAuswahl, strDateiTXT
Workbooks.OpenText Filename:=strDateiTXT, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, _
DecimalSeparator:=",", ThousandsSeparator:="."
Set wbTXT = ActiveWorkbook
'Tabellenblatt in leere Arbeitsmappe kopieren
wbTXT.Worksheets(1).Copy
'Textdatei schliessen und wieder löschen
wbTXT.Close savechanges:=False
VBA.Kill strDateiTXT
Set wbTXT = ActiveWorkbook
End If
End Sub