komplette Textdatei in excel importieren
Hallo,
mein Problem ist folgendes: Ich habe eine Textdatei mit Zahlen und Text, diese sind schon mit Tabs getrennt. Wenn ich mit Strg+a den Inhalt markiere und dann in Excel kopiere, werden die Werte richtig in die Zellen eingefügt.
Mit Workbooks.OpenText funktioniert es auch, allerdings möchte ich die Textdatei nicht in einem neuen Workbook öffnen sondern in meinem aktuellen workbook in tabelle 2, und evtl. sogar in eine bestimmte Zeile.
Wenn ich das ganze mit "Open test.txt For Input As #1 ..." versuche, habe ich das Problem dass nur mein Text ausgelesen wird und die Zahlen nicht.
Ich möchte nicht jede Textdatei einzeln öffnen und den Inhalt per Hand kopieren, sondern das ganze automatisch starten.
Kann mir da jemand helfen?
Vielen Dank.
Gruß lena
mein Problem ist folgendes: Ich habe eine Textdatei mit Zahlen und Text, diese sind schon mit Tabs getrennt. Wenn ich mit Strg+a den Inhalt markiere und dann in Excel kopiere, werden die Werte richtig in die Zellen eingefügt.
Mit Workbooks.OpenText funktioniert es auch, allerdings möchte ich die Textdatei nicht in einem neuen Workbook öffnen sondern in meinem aktuellen workbook in tabelle 2, und evtl. sogar in eine bestimmte Zeile.
Wenn ich das ganze mit "Open test.txt For Input As #1 ..." versuche, habe ich das Problem dass nur mein Text ausgelesen wird und die Zahlen nicht.
Ich möchte nicht jede Textdatei einzeln öffnen und den Inhalt per Hand kopieren, sondern das ganze automatisch starten.
Kann mir da jemand helfen?
Vielen Dank.
Gruß lena
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72581
Url: https://administrator.de/forum/komplette-textdatei-in-excel-importieren-72581.html
Ausgedruckt am: 02.02.2025 um 15:02 Uhr
2 Kommentare
Neuester Kommentar
Hallo lena123!
"Workbooks.OpenText" wäre ja nicht so übel - öffnen, alles markieren und kopieren, an der gewünschten Stelle in der anderen Mappe einfügen, "Workbook.Saved" auf True setzen und wieder schließen - lässt sich im Prinzip als Makro aufzeichnen und erfordert eigentlich nur eine Anpassung hinsichtlich der Zieladresse.
Alternativ dazu kannst Du das "FileSystemObject" verwenden, um den Text zeilenweise einzulesen, aufzuteilen und in die passenden Zellen eintragen zu lassen - Vorgangsweise etwa so (ungetestet):
Nützlich (da relativ gut nach VBA übertragbar) für ähnliche Situationen könnte auch KB306022 sein.
Grüße
bastla
"Workbooks.OpenText" wäre ja nicht so übel - öffnen, alles markieren und kopieren, an der gewünschten Stelle in der anderen Mappe einfügen, "Workbook.Saved" auf True setzen und wieder schließen - lässt sich im Prinzip als Makro aufzeichnen und erfordert eigentlich nur eine Anpassung hinsichtlich der Zieladresse.
Alternativ dazu kannst Du das "FileSystemObject" verwenden, um den Text zeilenweise einzulesen, aufzuteilen und in die passenden Zellen eintragen zu lassen - Vorgangsweise etwa so (ungetestet):
...
'sDatei = Textdatei mit vollem Pfad
'wTabelle = Zieltabelle
'iRow = nächste freie Zeile der Zieltabelle
...
Set fso = CreateObject("Scripting.FileSystemObject"
Set oText = fso.OpenTextFile(sDatei, 1)
aGesamtText = Split(oText.ReadAll, vbCrLF) 'erzeugt ein Array - Inhalt: jeweils eine Textzeile
oText.Close 'Textdatei wurde vollständig gelesen, daher schließen.
'Als Alternative zum Einlesen in einem Rutsch etwa folgendes Konstrukt:
'Do Until oText.AtEndOfStream / sLine = oText.ReadLine / ... siehe unten ... / Loop / oText.Close
For Each sLine In aGesamtText 'Alle Zeilen durchgehen, ...
aLine = Split(sLine, vbTab) '... anhand der enthaltenen Tabs in Arrayfelder zerteilen und ...
With wTabelle
.Range(.Cells(iRow, 1), .Cells(iRow, UBound(aLine) + 1)).Value = aLine '... als Array an passender Stelle in die Zieltabelle eintragen.
End With
iRow = iRow + 1
Next
Nützlich (da relativ gut nach VBA übertragbar) für ähnliche Situationen könnte auch KB306022 sein.
Grüße
bastla