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

Forumthread: .txt Datei mit vba einlesen

.txt Datei mit vba einlesen
18.09.2013 10:20:21
Thomas
Hallo,
muss eine .txt Datei Zeilenweise einlesen, da Datei sehr groß ist. Die ersten Zeilen bekomm ich nicht gelesen da diese kein lesbares Format haben(evtl Binär?). EOF etc. funktioniert nicht. Möchte alle Zeilen die mit gpcsvg anfangen in EscelSheet kopieren zur Weiterverarbeitung. Alle Zeilen die nicht lesbar sind sollen übersprungen werden. Bin für jeden Tipp sehr dankbar. Gruß Thomas
www.herber.de/bbs/user/87333.txt

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .txt Datei mit vba einlesen
18.09.2013 20:12:28
CitizenX
Hi,
mit

Option Explicit
Sub readMe()
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
Dim f As Object
Dim strPath$, arrOut
strPath = "C:....txt" 'dein Pfad
Set f = fso.OpenTextFile(strPath, 1)
arrOut = Split(f.readall, "gpcsvg")
f.Close
End Sub
..wird dir im arrOut dein Text wiedergegeben.
Wie du das Ergebniss dann weiter verarbeiten willst ist dann deine Sache...ist mir nicht klar.
VG
Steffen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

.txt Datei mit VBA einlesen und verarbeiten


Schritt-für-Schritt-Anleitung

Um eine .txt-Datei mit VBA zeilenweise einzulesen, kannst Du folgenden Code verwenden. Dieser Code überspringt alle nicht lesbaren Zeilen und kopiert nur die relevanten Daten in ein Excel-Sheet:

Option Explicit

Sub readMe()
    Dim fso As Object
    Dim f As Object
    Dim strPath As String
    Dim line As String
    Dim rowIndex As Long

    Set fso = CreateObject("Scripting.FileSystemObject")
    strPath = "C:\DeinPfad\deineDatei.txt" ' Passe den Pfad zur .txt-Datei an
    Set f = fso.OpenTextFile(strPath, 1) ' 1 = ForReading

    rowIndex = 1
    Do While Not f.AtEndOfStream
        line = f.ReadLine
        If Left(line, 7) = "gpcsvg" Then ' Prüfen, ob die Zeile mit "gpcsvg" beginnt
            Cells(rowIndex, 1).Value = line ' Schreibe die Zeile in die erste Spalte
            rowIndex = rowIndex + 1
        End If
    Loop

    f.Close
End Sub

Häufige Fehler und Lösungen

  • Problem: Die .txt-Datei ist sehr groß und das Einlesen dauert lange.
    Lösung: Stelle sicher, dass Du nur relevante Zeilen einliest, indem Du Bedingungen in Deinem Code setzt, wie im obigen Beispiel gezeigt.

  • Problem: Fehlermeldung beim Öffnen der Datei.
    Lösung: Überprüfe den Dateipfad und stelle sicher, dass die Datei existiert und nicht von einem anderen Programm verwendet wird.


Alternative Methoden

Falls Du eine andere Methode bevorzugst, kannst Du auch die Open-Anweisung verwenden, um die .txt-Datei zu lesen:

Dim fileNumber As Integer
fileNumber = FreeFile

Open "C:\DeinPfad\deineDatei.txt" For Input As #fileNumber
Do While Not EOF(fileNumber)
    Line Input #fileNumber, line
    ' Verarbeite die Zeile wie im vorherigen Beispiel
Loop
Close #fileNumber

Diese Methode ist ebenfalls nützlich, um eine .txt-Datei in Excel zu importieren.


Praktische Beispiele

Hier sind einige Beispiele, wie Du den obenstehenden Code anpassen kannst, um verschiedene Anforderungen zu erfüllen:

  1. Nur bestimmte Spalten importieren:
    Du kannst den Code so anpassen, dass nur bestimmte Teile der Zeile in Excel eingefügt werden, indem Du die Split-Funktion verwendest.

  2. Daten in verschiedene Spalten einfügen:
    Wenn Deine .txt-Datei durch ein bestimmtes Zeichen getrennt ist, kannst Du Split verwenden, um die Daten aufzuteilen und in verschiedene Spalten zu platzierten.

Dim parts As Variant
parts = Split(line, ";") ' Beispiel für ein Semikolon als Trennzeichen
Cells(rowIndex, 1).Value = parts(0) ' Erste Spalte
Cells(rowIndex, 2).Value = parts(1) ' Zweite Spalte

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Bildschirmaktualisierung während des Imports auszuschalten, was die Leistung verbessern kann.
  • Verwende Error Handling, um Fehler beim Einlesen der Datei abzufangen und entsprechende Maßnahmen zu ergreifen.
  • Überlege, ob Du die Scripting.Dictionary-Klasse verwenden möchtest, um Duplikate zu vermeiden, falls Du eine Liste von Werten erstellst.

FAQ: Häufige Fragen

1. Wie kann ich eine .txt-Datei in Excel importieren, ohne VBA?
Du kannst die Funktion "Daten > Externe Daten abrufen > Aus Text" verwenden, um .txt-Dateien in Excel zu importieren.

2. Was mache ich, wenn meine .txt-Datei nicht im richtigen Format vorliegt?
Überprüfe den Inhalt der Datei und stelle sicher, dass es sich um ein Textformat handelt. Ansonsten kannst Du versuchen, die Datei in einem Texteditor zu öffnen und das Format zu korrigieren.

3. Welche Version von Excel benötige ich für die Verwendung von VBA?
VBA ist in allen modernen Excel-Versionen verfügbar, darunter Excel 2010, 2013, 2016, 2019 und Excel 365.

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