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

Forumthread: Textdatei auf einmal einlesen

Textdatei auf einmal einlesen
17.08.2007 18:07:00
Reinhard
Hallo Wissende,
irgendwie komme ich mit der Vba-Hilfe zu "Open" überhaupt nicht klar :-(
Eine Textdatei mit "Input" oder "Line Input" auszulesen bekomme ich hin.
Wie aber schaffe ich es diese Datei auf einen Rutsch in eine Variable zu lesen?
Diese Variable kann ich ja dann mit Split in Zeilen zerlegen.
Danke ^ Gruß
Reinhard

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei auf einmal einlesen
17.08.2007 18:26:00
MichaV
Hallo,
na Reinhard. Das hatten wir doch schon behandelt... :o)


Option Explicit
Sub bla()
Dim strDateiInhalt As String
Open Application.GetOpenFilename For Binary As #1 'Datei binär öffnen
strDateiInhalt = Space(LOF(1)) 'Platz reservieren
Get #1, , strDateiInhalt
Close #1
Debug.Print strDateiInhalt
End Sub


Gruß- Micha
PS: Rückmeldung wäre nett.

Anzeige
AW: Textdatei auf einmal einlesen
18.08.2007 13:39:09
Reinhard
Hallo Micha,
"Das hatten wir doch schon behandelt... "
stimmt :-) Aber so bin ich nun mal, sturer Hesse, und was mir nicht in den Kopp neiwill, muss ich halt laufend nachfragen :-)))
K.Rola hat sich schon daran gewöhnt, mir alle Jahre zu sagen wie man die Register wieder anzeigt, weil die verschwinden bei mir von Zauberhand alljährlich und ich kann mir einfach nicht merken, wie der Reanimierungsbefhlscode lautet.
Also stell dich nicht so an, und gib mir den Code um eine Datei einzulesen halt alljährlich wieder neu durch *sanftlächel*
PS: Im anderen Forum, dieser Rainer, was treibt ihn dazu "meine" :-) marion so von der Seite anzublubbern!? Siehe seinen frischen Beitrag mit dem Betreff "Nicht lesenswert".
Ich habe deshalb eben Hans angemailt um nachzufragen wie er das mit Urheberschutz für seine hier offen gezeigten Codes sieht.
Dementsprechend werde ich dann ggfs. Rainer etwas antworten. Oder, höchstwahrscheinlich, sowiesowas weil ich sein Posting für mehr als arrogant halte.
Für interessierte MitleserInnen, es geht darum daß halt eine Marion aufgrund einer Excel-Anfrage als mögliche Lösung den Link:
https://www.herber.de/mailing/085599h.htm
gepostet hat, was wohl Rainer dazu gebracht hat, dies mit Verweis auf Urheberrecht zu negieren.
Danke dir
Lieben Gruß
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textdatei auf einmal einlesen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Textdatei in Excel VBA auf einmal einzulesen, kannst du den folgenden Code verwenden. Dieser öffnet die Datei im Binärmodus und liest den Inhalt in eine Variable ein:

Option Explicit

Sub TextdateiEinlesen()
    Dim strDateiInhalt As String

    Open Application.GetOpenFilename For Binary As #1 ' Datei binär öffnen
    strDateiInhalt = Space(LOF(1)) ' Platz reservieren
    Get #1, , strDateiInhalt
    Close #1
    Debug.Print strDateiInhalt ' Ausgabe des Inhalts in den Debug-Fenster
End Sub

Dieser Code verwendet die Open-Anweisung, um die .txt-Datei zu lesen und die Get-Anweisung, um den Inhalt in die Variable strDateiInhalt zu speichern. Du kannst diesen Inhalt anschließend mit der Split-Funktion in Zeilen zerlegen.


Häufige Fehler und Lösungen

  1. Fehler beim Öffnen der Datei:

    • Stelle sicher, dass der Pfad zur Datei korrekt ist. Wenn du die Datei nicht auswählen kannst, könnte es auch an fehlenden Berechtigungen liegen.
  2. Inhalt wird nicht korrekt angezeigt:

    • Überprüfe, ob die Datei im richtigen Format vorliegt. Manchmal kann eine fehlerhafte Kodierung dazu führen, dass der Inhalt nicht richtig gelesen wird.
  3. Debug.Print zeigt Leerzeichen an:

    • Achte darauf, dass die Datei tatsächlich Text enthält und das richtige Trennzeichen verwendet wird, falls du den Inhalt weiterverarbeiten möchtest.

Alternative Methoden

Zusätzlich zur Verwendung von Open und Get, gibt es andere Methoden, um eine Textdatei in Excel VBA einzulesen, wie zum Beispiel:

  • FileSystemObject: Diese Methode ist besonders nützlich, wenn du mehr Kontrolle über die Dateioperationen benötigst.
Dim fso As Object
Dim txtFile As Object
Dim strDateiInhalt As String

Set fso = CreateObject("Scripting.FileSystemObject")
Set txtFile = fso.OpenTextFile(Application.GetOpenFilename, 1) ' 1 = ForReading

strDateiInhalt = txtFile.ReadAll
txtFile.Close
  • Line Input: Diese Methode liest die Datei zeilenweise ein, was nützlich sein kann, wenn du jede Zeile separat verarbeiten möchtest.

Praktische Beispiele

Hier sind einige praktische Beispiele für das Einlesen von Textdateien:

  1. Einlesen einer Konfigurationsdatei:

    • Verwende den Code, um Einstellungen oder Parameter aus einer .txt-Datei zu laden.
  2. Datenanalyse:

    • Lade große Datensätze in eine Variable und analysiere sie anschließend mit VBA.
  3. Automatisierung:

    • Automatisiere das Einlesen von Protokolldateien oder anderen regelmäßig aktualisierten Textdateien.

Tipps für Profis

  • Nutze die Split-Funktion, um die Inhalte nach bestimmten Trennzeichen (z.B. Kommas oder Semikolons) zu zerlegen.
  • Achte darauf, die Datei immer nach dem Einlesen zu schließen, um Speicherlecks zu vermeiden.
  • Verwende Error Handling, um mögliche Laufzeitfehler beim Einlesen der Datei abzufangen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Datei existiert, bevor ich sie einlese?
Du kannst die Dir-Funktion verwenden, um zu überprüfen, ob die Datei vorhanden ist:

If Dir("Pfad\zur\Datei.txt") <> "" Then
    ' Datei existiert
End If

2. Kann ich auch andere Dateiformate einlesen?
Ja, du kannst mit dem gleichen Ansatz auch andere Textformate (.csv, .log, etc.) einlesen, solange der Inhalt textuell ist.

3. Wie kann ich die eingelesenen Daten in eine Excel-Tabelle schreiben?
Du kannst die Range-Eigenschaft verwenden, um die Daten direkt in Zellen einer Tabelle zu schreiben:

Range("A1").Value = strDateiInhalt

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige