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

Forumthread: Inhalt eine Textdatei kopieren

Inhalt eine Textdatei kopieren
01.04.2017 00:18:00
Barbaraa
Hallo
Kann man den Inhalt eine Textdatei ("Beispiel.txt"), die im selben Verzeichnis wie das Excel-Sheet liegt, in eine String-Variable speichern?
Kann man das auch, ohne diese Datei zu öffnen?
Kann man den Inhalt auch in ein neues Sheet kopieren?
Bitte um Hilfe.
LG, Barbara
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt eine Textdatei kopieren
01.04.2017 09:37:34
ChrisL
Hi Barbara
Ohne öffnen geht nicht, aber "Open For Input" ist schnell und wirst du kaum merken.
https://www.herber.de/vbabasics/0021.html
Siehe Archiv, gibt noch diverse andere Muster.
cu
Chris
AW: Inhalt eine Textdatei kopieren
01.04.2017 10:06:45
Hajo_Zi
Hallo Barbara,
in eine Variable würde ich auch als schlecht ansehen. Die Textdatei könnte ja über 100 Zeilen enthalten.

Anzeige
AW: Inhalt eine Textdatei kopieren
01.04.2017 16:09:11
Barbaraa
Hallo ChrisL
danke für Deinen interessanten Link.
Lauter neue Sachen.
Dank auch an Hajo_Zi, werde es beachten.
LG, Barbara
AW: Inhalt eine Textdatei kopieren
02.04.2017 11:28:48
Barbaraa
Dazu noch zwei Zusatzfragen:
Der Link
https://www.herber.de/vbabasics/0021.html
den ChrisL oben vorgeschlagen hat, zeigt Makros, die mit
"Open For Input"
Dateien öffnet.
Ist es schlimm, wenn ich beim händischen Abarbeiten mit F8 den Close-Befehl am Schluss nicht ausführe? (vielleicht hinterlässt das belastenden Datenmüll im Arbeitsspeicher)
Da der Task-Manager bei Open keine Veränderung zeigt, wird das Dokument ja nicht wirklich geöffnet.
Und die zweite Frage:
Kann man das auch irgendwie zum Auslesen eines pdf-Dokuments verwenden?
Bei mir kommen einige Strings, aber sicher nicht der pdf-Inhalt.
Ich will die Formulareinträge eines pdf-Formulars auslesen, die ich jetzt über den Umweg mit
"Speichern als... Text"
erst in eine Textdatei bringe und von dort auslese.
LG, B.
Anzeige
Es kommt ganz darauf an...
02.04.2017 12:44:45
Case
Hallo Barbara, :-)
... wie Du die Textdatei öffnest. Mit "FreeFile" wird immer eine neue freie Dateinummer vergeben. Das geht aber nicht pauschal siehe den Block "Wichtig" in folgendem Link:
Open-Anweisung...
Alle Fragen rund um Textdateien lesen/schreiben beantwortet folgender Link:
Umgang mit Textdateien...
Wenn ich viel teste, dann schreibe ich zwischendurch einfach mal ein "Close" im VBA-Editor in das "Direktfenster". Das - ohne Angabe einer "filenumber" - schliesst alle Dateien, die mit "Open" geöffnet wurden.
Ansonsten im laufenden Programm einfach ein Close am Schluss (eventuell in einer Fehlerbehandlung).
Und nein - PDF-Dateien kannst Du so nicht auslesen. Entweder über den von mir vorgeschlagenen Weg PDF nach Text (was ja auch per VBA geht) und dann einlesen. Oder mit der Adobe Vollversion - die kostet aber und setzt schon einiges an Einarbeitungszeit vorraus.
Ein zeilenweises einlesen einer Textdatei ist nur selten nötig. In Deinem Fall kannst Du die Datei auch auf einen Rutsch (Stichworte "Space$(LOF(intTMP))" oder "ADODB.Stream") in ein Array einlesen und dann über Split aufdröseln.
Servus
Case

Anzeige
;

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
Anzeige

Infobox / Tutorial

Inhalt einer Textdatei in Excel auslesen und kopieren


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Textdatei in Excel auszulesen und eventuell in ein neues Sheet zu kopieren, kannst du die folgenden Schritte befolgen:

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Modul erstellen:

    • Klicke im Menü auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
  3. Code einfügen:

    • Füge den folgenden Code ein, um den Inhalt der Textdatei in eine Variable zu speichern und in ein neues Sheet zu kopieren:
    Sub TextdateiAuslesen()
       Dim DateiName As String
       Dim Inhalt As String
       Dim Zeile As String
       Dim i As Integer
    
       DateiName = ThisWorkbook.Path & "\Beispiel.txt" ' Pfad zur Textdatei
    
       Open DateiName For Input As #1
       Do While Not EOF(1)
           Line Input #1, Zeile
           Inhalt = Inhalt & Zeile & vbCrLf
       Loop
       Close #1
    
       ' Neuen Arbeitsblatt erstellen und Inhalt einfügen
       Sheets.Add.Name = "Textinhalt"
       For i = 0 To UBound(Split(Inhalt, vbCrLf)) - 1
           Cells(i + 1, 1).Value = Split(Inhalt, vbCrLf)(i)
       Next i
    End Sub
  4. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle TextdateiAuslesen und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Stelle sicher, dass der Dateiname und der Pfad korrekt sind. Die Textdatei sollte sich im selben Verzeichnis wie die Excel-Datei befinden.
  • Fehler: "Überlauf"

    • Dies kann passieren, wenn die Textdatei sehr groß ist. Überprüfe, ob die Datei zu viele Zeilen hat oder versuche, den Code in kleinere Abschnitte aufzuteilen.
  • Schließen von Dateien

    • Wenn du den Close-Befehl vergisst, könnten im Arbeitsspeicher offene Dateihandles verbleiben. Dies kann zu Speicherproblemen führen. Füge immer einen Close-Befehl am Ende deines Codes hinzu.

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, gibt es auch alternative Methoden:

  • Power Query: Du kannst Power Query verwenden, um Daten aus einer Textdatei in Excel zu importieren. Gehe zu Daten > Abrufen und transformieren > Aus Datei > Aus Text/CSV.

  • CSV-Datei: Wenn du die Textdatei im CSV-Format speicherst, kannst du sie direkt in Excel importieren, indem du Daten > Aus Text/CSV auswählst.


Praktische Beispiele

  1. Einlesen von CSV-Dateien:

    • Ähnlich wie bei Textdateien kannst du den oben genannten VBA-Code anpassen, um CSV-Dateien auszulesen.
  2. PDF-Inhalt extrahieren:

    • Um Inhalte aus PDFs zu extrahieren, kannst du die Datei zuerst in ein Textformat umwandeln und dann mit dem oben gezeigten Code einlesen.

Tipps für Profis

  • Verwendung von ADODB.Stream: Für größere Dateien empfiehlt es sich, ADODB.Stream zu nutzen, da dies effizienter ist, um den gesamten Inhalt einer Datei auf einmal zu lesen.

  • Error Handling: Implementiere eine Fehlerbehandlung in deinem Code, um sicherzustellen, dass dein Script auch bei Problemen nicht abstürzt.


FAQ: Häufige Fragen

1. Kann ich den Inhalt einer Textdatei ohne VBA in Excel importieren? Ja, du kannst Power Query oder den Importassistenten in Excel nutzen, um Textdateien ohne VBA zu importieren.

2. Wie kann ich den Inhalt einer PDF-Datei direkt in Excel auslesen? Das direkte Auslesen von PDF-Dateien in Excel ist nicht möglich; die beste Methode ist, die PDF-Datei zuerst in eine Textdatei zu konvertieren und diese dann einzulesen.

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