Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textdatei per VBA einlesen

Textdatei per VBA einlesen
19.04.2007 18:37:48
Oliver
hallo Excelgemeinde,
Ich lese per VBA eine Textdatei mit mehr als 65000 Zeilen ein. Allerdings habe ich als Texttrennung ein Semikolon. Wie kann ich das gegen ein TAB austauschen bzw. Wie lautet der richtige Syntax? Vielen Dank im voraus!
Gruss
Oliver
Hier der Code

Sub Text_lesen()
Dim Fso As Object, Dat As Object, i As Long, Blatt As Byte
Dim txt As String, x As Integer, y As Byte, alt As Integer
' Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
Set Fso = CreateObject("Scripting.FileSystemObject")
' Datei öffnen
Set Dat = Fso.OpenTextFile("c:\Temp\testfile.txt", 1, False)
i = 0
Do While Dat.AtEndOfStream  True
' Tabellenblatt ermitteln
Blatt = (i \ 65536) + 1   ' Ganzzahl nach Teilung
' Textzeile auslesen
txt = Dat.ReadLine
alt = 0
y = 0
' Schleife über die einzelnen Zeichen des Textes
For x = 1 To Len(txt)
' Nach Semikolon abfragen Abfrage nach TAB
If Mid(txt, x, 1) = ";" Then
' Mod liefert den Rest der Teilung
Worksheets(Blatt).Cells((i Mod 65536) + 1, y + 1) = Mid(txt, alt + 1, x - alt - 1)
' zwischenspeichern der Stelle
alt = x
y = y + 1
End If
Next x
' die letzte Zelle der Zeile beschreiben
Worksheets(Blatt).Cells((i Mod 65536) + 1, y + 1) = Mid(txt, alt + 1, x - alt - 1)
i = i + 1
Loop
' Datei schließen
Dat.Close
Application.ScreenUpdating = True
MsgBox "Fertig"
End Sub


Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei per VBA einlesen
19.04.2007 19:20:00
Matthias
Hallo Oliver,
nimm doch die Funktion Split(), damit kannst du einen String mit einem definierten Trennzeichen in ein Array schreiben.
Gruß Matthias

AW: Textdatei per VBA einlesen
19.04.2007 19:57:00
toastyxxl
Hallo Matthias,
Ich kenne zwar Funktionen in VBA, allerdings habe ich sehr wenig Übung in diesem Bereich. kannst Du mir skizzieren wie das auszusehen hat?
Gruss
Oliver

Anzeige
AW: Textdatei per VBA einlesen
19.04.2007 20:04:00
Matthias
Hallo Oliver,
ein Beispiel:

Sub test()
Dim a() As String
Dim tmp As String
Dim i As Integer
tmp = "12;abc;Hallo;456"
a = Split(tmp, ";")
For i = 0 To UBound(a)
Debug.Print a(i)
Next i
End Sub


Gruß Matthias

AW: Textdatei per VBA einlesen
19.04.2007 20:14:00
toastyxxl
Hallo Matthias,
mit einem Zeichen ist mir das schon einleuchtend gewesen. Aber was mache ich wenn das Trennzeichen ein Tabstop ist? {TAB} wird nicht akzeptiert.
Gruss
Oliver

Anzeige
AW: Textdatei per VBA einlesen
19.04.2007 20:21:24
Matthias
Hi,
und so?
a = Split(tmp, chr(9))
Gruß Matthias

AW: Textdatei per VBA einlesen
19.04.2007 20:26:00
toastyxxl
chr(9)...das war es. Perfekt.
Jetzt liest er wunderbar ein.
Vielen Dank für die ultraschnelle Hilfe.
Gruss
Oliver
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige