Hole Dir das Textfile und arbeite asnchließend mit Text in Spalten.
Folgendes Beispiel importiert dieses File:
C:\Test\Nummern.txt
Das File hat 3 Spalten.
Spalten getrennt durch Tabs.
Zeilen getrennt durch Steuerzeichen CRLF.
Option Explicit
Sub ImportTXT()
Dim v
Dim s As String
Dim FF As Integer
Dim rng As Excel.Range
'*** Textfile einlesen
FF = FreeFile
Open "c:\Test\Nummern.txt" For Binary As #FF
s = Space$(LOF(FF))
Get FF, , s
s = Replace(s, vbTab, "|")
Close #FF
'*** Zeilenweise splitten; Zeile=vbCRLF ; Spalten="|"
v = Split(s, vbCrLf)
'*** aus 1D mach 2D-Array
v = Application.Transpose(v)
'*** Schreibe ins Worksheet
Range("A1").Resize(UBound(v, 1), UBound(v, 2)).Value = v
'*** Text in Spalten mit "|"
Set rng = ActiveSheet.Range("A1").CurrentRegion
rng.TextToColumns Destination:=ActiveSheet.Range("A1"), _
DataType:=XlTextParsingType.xlDelimited, _
TextQualifier:=XlTextQualifier.xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:="|", _
FieldInfo:=Array(Array(1, 2), Array(2, XlColumnDataType.xlTextFormat), Array(3, XlColumnDataType.xlTextFormat))
'*** 2DArrays in Array; je mehr Spalten, desto mehr Arrays im Array. Klingt komisch; einfach in Onlinehilfe nachlesen
End Sub
Das File in einem rutsch eingelesen.
Zeilenweise in ein 1D Array zerlegt.
In ein 2D-Array transponiert, sodass auf einmal an ein Worksheet übergeben werden kann.
Anschließend wird "Text in Spalten" angewandt, um die Daten von einer Spalte in viele Spalten aufzuteilen und als Text in diese Spalten zu schreiben.
Der Schlüssel für Dich liegt im Parameter FieldInfo.
Lies Dich ein. Wenn Du diesen Code durchschaust, ist es ein leichtes für DIch diesen an Deine Umgebung anzupassen.
|