Hallo,
wie kann ich mit VBA eine Datei zeilenweise einlesen und nach Datenfeld-Spezifikation trennen, die jedoch keine Trennzeichen enthält? Ich möcht angeben können, dass in die erste Spalte z.B. die ersten 4 Zeichen eingelesen werden, in die Zweite die nächsten 3, dann 5 etc... Am liebsten möchte ich die Zeichenlänge der einzelnen Datenfelder in ein Array schreiben, das dann für den Schleifendurchlauf jeweils die Länge heraussucht, um die Zeichenkette so zu splitten.
Ansonsten habe ich das schöne Skript aus diesem Forum, das ich unter dem Link http://forum.fachinformatiker.de/basic/43047-reinladen-textdatei-excel.html gefunden habe (ich hoffe, ich darf es hier wiedergeben).
Public Sub readInputFile()
Dim ff As Long
Dim sFile As String
Dim sLine As String
Dim arr() As String
Dim row As Long
Dim col As Long
Dim activCell As Range
ff = FreeFile
sFile = Application.GetOpenFilename("beliebige Datei,*.*")
'datei oeffnen
Open sFile For Input As #ff
'erste zelle markieren
Set activCell = Worksheets("Tabelle1").Range("A1")
Call activCell.Activate
While (Not EOF(ff))
Line Input #ff, sLine 'zeile einlesen
arr = Split(sLine, vbtab) 'an tabs aufspalten
For col = LBound(arr) To UBound(arr)
'relativ zur aktiven zelle den wert setzen
activCell.Offset(row, col).Value = arr(col)
Next 'i
row = row + 1
Wend
'schliessen
Close ff
End Sub
Das Einlesen klappt auch, allerdings muss auf diesem Weg ein Trennzeichen definiert werden (hier 'vbtab'). Wie geht das auch ohne, beim fortlaufenden String?
Danke und Gruß
orange3000