Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Split-Funktion beim Einlesen TXT-Datei

Forumthread: Split-Funktion beim Einlesen TXT-Datei

Split-Funktion beim Einlesen TXT-Datei
29.09.2019 20:36:52
Andreas K

Guten Abend zusammen,
sicherlich könnt ihr mir hier bei meiner Test-Datei helfen, irgendwie bekomme ich den Split-Befehl nicht korrekt umgesetzt... Dieser scheint bei mir nicht zu klappen :(
Hier mein Code:
Option Explicit

Sub einlesen()
Dim Quelldatei As String
Dim Zeile As Integer
Dim Inhalt As String
Dim Informationen() As String
Dim i As Integer
ThisWorkbook.Worksheets("Test").Activate
Zeile = 1
Quelldatei = ThisWorkbook.Path & "\1.txt"
Open Quelldatei For Input As #1
Do While Not EOF(1)
Line Input #1, Inhalt
Informationen = Split(Inhalt, vbTab)
For i = 0 To UBound(Informationen)
ActiveSheet.Cells(Zeile, 2) = Inhalt
Next
Zeile = Zeile + 1
Loop
Close #1
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Split-Funktion beim Einlesen TXT-Datei
30.09.2019 06:26:13
Oberschlumpf
Hi Andreas,
danke für die txt-Dateien.
Anhand derer kann man schon mal erkennen, dass die Textzeilen...
...entweder gar kein Tab-Zeichen als Trenner enthalten
...nur Tab-Zeichen als Trenner enthalten
...und sowohl Leer- UND auch Tab-Zeichen als Trenner enthalten
Das heißt, man muss nach dem Einlesen jeder einzelnen Zeile diese erst mal dahingehend bereinigen, dass nur EIN eindeutiger Trenner enthalten ist, mit dessen Hilfe man dann mit der Split-Funktion weiter arbeiten kann.
Und die 2. txt-Datei sieht ja vom Inhalt her auch ganz anders aus
- anstelle von Leerzeilen gibt es "-----"-Zeilen
- einige Zeilen enthalten zudem noch mehrere |-Zeichen
All das macht die Sache nicht einfacher :-)
Ich kenne mich mit SAP nicht aus.
Aber da ja die Datenwerte in beiden txt-Dateien gleichen Typs zu sein scheinen, kann man SAP nicht so einstellen, dass die Export-Dateien (txt) vom Aufbau her gleich aussehen?
Und zum Schluss noch diese Frage:
Da ja fast jede Zeile in den txt-Dateien anders aufgebaut ist, kannst du bitte auch per Upload eine Excel-Datei zeigen, in der du alle Zeilen einer txt-Datei so eingetragen hast, wie es am Schluß aussehen soll?
Danke + Tschüss
Thorsten
Anzeige
AW: Split-Funktion beim Einlesen TXT-Datei
29.09.2019 21:44:44
Daniel
Hi
Naja innerhalb der For-Next-Schleife änderst du ja nicht die Zelle, in welche die Werte geschrieben werden, damit überschreibst du ja immer die Werte und siehst immer nur den letzten.
Das "Zeile = Zeile + 1" muss vor dem Next stehen.
Gruß Daniel
AW: Split-Funktion beim Einlesen TXT-Datei
29.09.2019 21:45:03
Daniel
Hi
Naja innerhalb der For-Next-Schleife änderst du ja nicht die Zelle, in welche die Werte geschrieben werden, damit überschreibst du ja immer die Werte und siehst immer nur den letzten.
Das "Zeile = Zeile + 1" muss vor dem Next stehen.
Gruß Daniel
Anzeige
AW: Split-Funktion beim Einlesen TXT-Datei
29.09.2019 21:45:12
Daniel
Hi
Naja innerhalb der For-Next-Schleife änderst du ja nicht die Zelle, in welche die Werte geschrieben werden, damit überschreibst du ja immer die Werte und siehst immer nur den letzten.
Das "Zeile = Zeile + 1" muss vor dem Next stehen.
Gruß Daniel
nur zur Info...
30.09.2019 08:58:25
Werner
Hallo an alle,
...da wird wohl nix mehr kommen.
Hier auch noch http://www.vba-forum.de/forum/View.aspx?ziel=53870-Split-Befehl_beim_Einlesen_TXT-Datei_nicht_m%C3%B6glich? Und da auch gelöst.
Gruß Werner
Anzeige
AW: nur zur Info...
30.09.2019 09:17:44
Oberschlumpf
Hi Werner,
vielen Dank!!
Ciao
Thorsten

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Split-Funktion beim Einlesen einer TXT-Datei in Excel


Schritt-für-Schritt-Anleitung

Um eine TXT-Datei zeilenweise in Excel einzulesen und dabei die Split-Funktion anzuwenden, kannst du folgenden VBA-Code verwenden:

Sub einlesen()
    Dim Quelldatei As String
    Dim Zeile As Integer
    Dim Inhalt As String
    Dim Informationen() As String
    Dim i As Integer
    ThisWorkbook.Worksheets("Test").Activate
    Zeile = 1
    Quelldatei = ThisWorkbook.Path & "\1.txt"
    Open Quelldatei For Input As #1
    Do While Not EOF(1)
        Line Input #1, Inhalt
        Informationen = Split(Inhalt, vbTab)
        For i = 0 To UBound(Informationen)
            ActiveSheet.Cells(Zeile, i + 1) = Informationen(i)
        Next i
        Zeile = Zeile + 1
    Loop
    Close #1
End Sub

Dieser Code öffnet eine TXT-Datei, liest sie zeilenweise ein und verwendet die Split-Funktion, um die Zeilen durch Tabulatoren zu trennen. Achte darauf, dass die TXT-Datei im gleichen Verzeichnis wie die Excel-Datei gespeichert ist.


Häufige Fehler und Lösungen

  1. Problem: Nur der letzte Wert wird angezeigt.

    • Lösung: Stelle sicher, dass die Zeile (Zeile = Zeile + 1) innerhalb der Schleife nach dem Next i steht, damit die Zellen korrekt gefüllt werden.
  2. Problem: Fehler beim Öffnen der Datei.

    • Lösung: Überprüfe den Pfad zur Datei und stelle sicher, dass die Datei existiert. Der Pfad muss korrekt angegeben sein.
  3. Problem: Split funktioniert nicht.

    • Lösung: Überprüfe, ob die Datei tatsächlich Tabulatoren als Trenner verwendet. Eventuell musst du den Trenner anpassen.

Alternative Methoden

Wenn du eine andere Methode bevorzugst, um eine TXT-Datei zeilenweise zu lesen, kannst du die QueryTable-Methode in Excel verwenden. Diese Methode ist besonders nützlich, wenn du Daten aus einer CSV-Datei oder einer TXT-Datei importieren möchtest, ohne VBA zu verwenden. Du kannst dies über Daten > Externe Daten importieren tun.


Praktische Beispiele

Hier sind zwei Beispiele, die du verwenden kannst:

  1. Beispiel für eine einfache TXT-Datei:

    • Angenommen, du hast eine Datei namens daten.txt mit folgendem Inhalt:
      Name    Alter
      Max     30
      Anna    25
  2. Beispiel mit gemischten Trennern:

    • Wenn deine Datei gemischt.txt sowohl Tabulatoren als auch Leerzeichen enthält, kann es helfen, diese zuerst zu bereinigen, bevor du Split anwendest.

Tipps für Profis

  • Verwendung von Trim: Bevor du die Split-Funktion anwendest, nutze Trim um führende und folgende Leerzeichen zu entfernen, was die Datenbereinigung vereinfacht.

  • Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung in deinem Code, um unerwartete Fehler zu vermeiden, beispielsweise wenn die Datei nicht gefunden wird.

  • Datenvalidierung: Stelle sicher, dass die Daten, die du einliest, den erwarteten Formatierungen entsprechen, um Probleme beim Einlesen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere TXT-Dateien gleichzeitig einlesen?
Du kannst eine Schleife erstellen, die durch eine Liste von Dateinamen iteriert und für jede Datei den gleichen Einlesevorgang durchführt.

2. Welche Excel-Version benötige ich für diese VBA-Funktion?
Die beschriebenen VBA-Funktionen sollten in den meisten modernen Excel-Versionen (Excel 2010 und später) funktionieren.

3. Was mache ich, wenn die Datei viele Zeilen hat?
Die Split-Funktion ist in der Lage, auch große Datenmengen zu verarbeiten. Achte jedoch darauf, dass dein Code effizient ist, um die Leistung nicht zu beeinträchtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige