Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

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

Anzeige
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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige