Txt-Datei mit Trennzeichen in Excel einlesen
Schritt-für-Schritt-Anleitung
Um eine txt-Datei mit einem bestimmten Trennzeichen in Excel einzulesen und die Daten in ein bestehendes Tabellenblatt (z.B. "Tabelle2") zu übertragen, kannst du folgendes VBA-Skript verwenden:
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Füge in einem neuen Modul folgenden Code ein:
Sub TxtDateiEinlesen()
Dim sPath As String
Dim FileName As String
Dim InputData As String
Dim anzfound As Integer
anzfound = 0
sPath = "C:\WUTemp\" 'Pfad zur txt-Datei anpassen
FileName = Dir(sPath & "*.txt")
If FileName <> "" Then
Do While FileName <> ""
Open sPath & FileName For Input As #1
Do While Not EOF(1)
Line Input #1, InputData
anzfound = anzfound + 1
Sheets("Tabelle2").Cells(anzfound + 1, 1) = InputData 'Daten in Tabelle2 schreiben
Loop
Close #1
FileName = Dir
Loop
End If
End Sub
- Passe den Pfad
sPath zu deiner txt-Datei entsprechend an.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
- Fehler: "Loop ohne Do": Dieser Fehler tritt auf, wenn die Struktur des Codes nicht stimmt. Stelle sicher, dass alle
Do While- und Loop-Befehle korrekt sind.
- Daten landen in einem neuen Sheet: Wenn die Daten in einem neuen Sheet erscheinen, überprüfe den Code und stelle sicher, dass du die richtige Tabelle angibst, wie in
Sheets("Tabelle2").
Alternative Methoden
Neben dem VBA-Skript gibt es auch andere Möglichkeiten, eine txt-Datei in Excel zu importieren:
-
Textimport-Assistent:
- Gehe zu
Daten > Aus Text/CSV.
- Wähle die txt-Datei aus und folge dem Assistenten, um die Trennzeichen (z.B. Leerzeichen) auszuwählen.
-
Power Query (in neueren Excel-Versionen):
- Gehe zu
Daten > Daten abrufen > Aus Datei > Aus Text/CSV.
- Wähle die Datei aus und konfiguriere die Abfrage.
Praktische Beispiele
Hier sind einige Beispiele, wie du txt-Dateien mit verschiedenen Trennzeichen einlesen kannst:
- Einlesen mit Leerzeichen als Trennzeichen:
' Beispielcode für Leerzeichen
If InStr(1, InputData, " ") > 0 Then
' Verarbeite die Daten
End If
- Einlesen mit Komma als Trennzeichen:
' Beispielcode für Komma
If InStr(1, InputData, ",") > 0 Then
' Verarbeite die Daten
End If
Tipps für Profis
- Verwende
Application.ScreenUpdating = False: Dies kann die Ausführung des Codes beschleunigen, indem es das Bildschirm-Update während des Imports deaktiviert.
- Prüfe auf leere Zeilen: Füge eine Bedingung hinzu, um leere Zeilen zu ignorieren, bevor du die Daten in "Tabelle2" schreibst.
If Trim(InputData) <> "" Then
' Schreibe die Daten
End If
FAQ: Häufige Fragen
1. Frage
Kann ich auch CSV-Dateien mit diesem Skript einlesen?
Antwort: Ja, das Skript kann auch für CSV-Dateien verwendet werden. Ändere einfach den Filter im Dir-Befehl zu "*.csv".
2. Frage
Wie kann ich das Skript so anpassen, dass die Daten an einer bestimmten Zeile in "Tabelle2" eingefügt werden?
Antwort: Ändere die Zeile in Sheets("Tabelle2").Cells(anzfound + 1, 1) zu Sheets("Tabelle2").Cells(Zeilennummer, 1), wobei Zeilennummer die gewünschte Startzeile ist.