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

Forumthread: Textdatei per Makro zeilenweise einlesen

Textdatei per Makro zeilenweise einlesen
26.09.2005 03:50:26
Alexander
Hallo,
ich habe eine sehr sehr große Textdatei, die lauter Tabellen 21*62 enthält (untereinander platziert). Wie kann ich diese Tabellen eine nach der anderen einlesen (um dann aus allen Tabellen einen Durchschnitt zu bilden). Es würde auch helfen, wenn ich die Datei zeilenweise einlesen könnte.
Danke im Voraus
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei per Makro zeilenweise einlesen
26.09.2005 07:54:45
Matthias
Hallo Alexander,

Sub Einlesen(fn As String)
Dim ff As Integer
Dim z As String
ff = FreeFile
Open fn For Input As ff
While Not EOF(ff)
Line Input #ff, z
MsgBox z
Wend
Close ff
End Sub

Schu dir in der Hilfe noch die VBA-Funktion Split() an, damit kannst du aus der Zeile die Elemente separieren.
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textdatei per Makro zeilenweise einlesen


Schritt-für-Schritt-Anleitung

Um eine Textdatei per VBA zeilenweise einzulesen, kannst du den folgenden Code verwenden. Dieser öffnet die Datei und liest jede Zeile einzeln ein.

Sub Einlesen(fn As String)
    Dim ff As Integer
    Dim z As String
    ff = FreeFile
    Open fn For Input As ff
    While Not EOF(ff)
        Line Input #ff, z
        MsgBox z ' Hier kannst du die Zeile weiterverarbeiten
    Wend
    Close ff
End Sub
  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Rufe die Subroutine auf, indem du den Pfad zu deiner Textdatei übergibst:
    Einlesen "C:\Pfad\zu\deiner\datei.txt"

Häufige Fehler und Lösungen

  • Fehlermeldung: Datei nicht gefunden
    Überprüfe den angegebenen Pfad zur Textdatei. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.

  • Leere MsgBox
    Wenn die MsgBox leer bleibt, könnte es daran liegen, dass die Datei keine Zeilen enthält oder falsch formatiert ist. Öffne die Datei in einem Texteditor, um den Inhalt zu überprüfen.

  • VBA-Funktion Split() nicht verwendet
    Falls du die Zeilen in verschiedene Elemente aufteilen möchtest, kannst du die Split()-Funktion verwenden:

    Dim elements() As String
    elements = Split(z, ";") ' Beispiel für Trennung nach Semikolon

Alternative Methoden

Neben VBA gibt es auch andere Möglichkeiten, eine Textdatei in Excel zu importieren:

  • Datenimport über die Excel-Oberfläche:
    Gehe zu "Daten" > "Daten abrufen" > "Aus Text/CSV", um eine Textdatei in Excel zu importieren. Diese Methode ist besonders nützlich, wenn du keine Programmierkenntnisse hast.

  • VB.NET verwenden:
    Wenn du mit VB.NET vertraut bist, kannst du eine Textdatei zeilenweise einlesen, indem du die StreamReader-Klasse verwendest. Hier ein einfaches Beispiel:

    Using reader As New System.IO.StreamReader("C:\Pfad\zu\deiner\datei.txt")
      Dim line As String
      While (Not reader.EndOfStream)
          line = reader.ReadLine()
          Console.WriteLine(line)
      End While
    End Using

Praktische Beispiele

Hier sind einige Anwendungsbeispiele für das zeilenweise Einlesen einer Textdatei in Excel:

  • Durchschnittswerte berechnen:
    Wenn deine Textdatei mehrere Tabellen enthält, kannst du die Werte in einem Array speichern und den Durchschnitt berechnen:

    Dim sum As Double
    Dim count As Integer
    sum = 0
    count = 0
    While Not EOF(ff)
      Line Input #ff, z
      sum = sum + CDbl(z) ' Konvertiere die Zeile in eine Zahl
      count = count + 1
    Wend
    MsgBox "Durchschnitt: " & (sum / count)
  • Daten in eine Tabelle einfügen:
    Statt einer MsgBox kannst du die Daten direkt in eine Excel-Tabelle einfügen:

    Dim i As Integer
    i = 1
    While Not EOF(ff)
      Line Input #ff, z
      Cells(i, 1).Value = z ' Füge die Zeile in die erste Spalte ein
      i = i + 1
    Wend

Tipps für Profis

  • Fehlerbehandlung hinzufügen:
    Implementiere eine Fehlerbehandlung, um mögliche Probleme beim Lesen der Datei abzufangen:

    On Error GoTo ErrorHandler
    ' Dein Code zum Einlesen
    Exit Sub
    ErrorHandler:
    MsgBox "Fehler: " & Err.Description
  • Leistungsoptimierung:
    Wenn du mit sehr großen Textdateien arbeitest, kann es hilfreich sein, die Bildschirmaktualisierung während des Einlesens zu deaktivieren:

    Application.ScreenUpdating = False
    ' Dein Code zum Einlesen
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich eine große Textdatei effizienter einlesen?
Verwende eine Kombination aus der Application.ScreenUpdating-Eigenschaft und einer Fehlerbehandlung, um die Leistung zu optimieren und Fehler zu vermeiden.

2. Kann ich auch txt-Dateien mit VBA einlesen?
Ja, der Code funktioniert auch für .txt-Dateien, da es sich um einfache Textdateien handelt. Achte nur darauf, den richtigen Pfad anzugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige