Wie du das machen kannst, dein Textfile AUSLESEN? Nun, du lässt dir vom System eine freie Kanalnummer heraussuchen, liest zeilenweise aus, ersetzt alle mehrfach vorkommenden Leerzeichen, splittest den Text dann nach den restlichen Leerzeichen und übernimmst ihn in die Excel-Datei.
Also:
Option Explicit
Sub TextFileAuslesen()
Dim Datei As String 'Variable für Textdatei und Pfad
Dim ff As Integer 'Variable für freie Kanalnummer für Dateizugriff
Dim Zeile As String 'Variable für Inhalt von ausgelesener Zeile
Dim arr() As String 'Array-Variable zum Aufsplitten des Zeilentextes
Dim Blattzeile As Integer 'Varialbe, um Zeile in Excel-Sheet zu bestimmen
Dim i As Integer 'Einfache Zählvariable, um Array-Inhalt auszulesen
Datei = "d:\irgendwas\irgendwas.txt" 'Variable für Textdatei und Pfad wird
' gefüllt
ff = FreeFile() 'System sucht freie Kanalnummer für Dateizugriff
Blattzeile = 1 'Wir fangen in der ersten Zeile des Arbeitsblattes an, Daten
' hineinzuschreiben
Open Datei For Input As ff 'Die Datei wird lesend geöffnet
Do While Not EOF(ff) 'Solange das Dateiende nicht erreicht ist...
Line Input #ff, Zeile '... wird der Zeileninhalt ausgelesen
Do While InStr(Zeile, " ") <> 0 'Solange es im Zeileninhalt mehrere
' Leerstellen nacheinander gibt...
Zeile = Replace(Zeile, " ", " ") '... werden diese beseitigt
Loop 'Schleife für das Beseitigen der Leerstellen
arr() = Split(Zeile, " ") 'Der bereinigte Zeileninhalt wird nach den
' verbliebenen Leerzeichen aufgesplittet
For i = 0 To UBound(arr()) - 1 'Für den gesamten Inhalt des nullbasierten Arrays
ThisWorkbook.ActiveSheet.Cells(Blattzeile, i + 1).Value = arr(i) 'In das aktive
' Arbeitsblatt von dieser Arbeitsmappe werden in der genannten Zeile
' "Blattzeile) in die von i+1 bestimmte Zelle die jeweiligen Array-Daten" & _
"geschrieben
Next 'Schleife für i, wird also ausgeführt, solange das Array noch nicht
' durchlaufen ist
Blattzeile = Blattzeile + 1 'Wenn die Zeile gefüllt ist, erhöhen wir um 1,
' damit gleich die nächste Zeile gefüllt werden kann
Loop 'Wenn das Dateiende noch nicht erreicht ist, geht es hier weiter
Close ff 'Wenn das Dateiende erreicht ist, wird der Zugriff auf die Textdatei
' beendet
MsgBox "Fertig!" 'Schlussmeldung, dass alles erledigt ist
End Sub EALA FREYA FRESENA |