Mehrere Dateien nacheinander öffnen und speichern in Excel
Schritt-für-Schritt-Anleitung
Um mehrere TXT-Dateien nacheinander zu öffnen, zu bearbeiten und im XLS-Format zu speichern, kannst Du das folgende VBA-Makro verwenden:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Erstelle ein neues Modul über
Einfügen
> Modul
.
- Füge den folgenden Code ein:
Sub DateienOeffnen()
Dim TmpDatei As String
Dim FName As String
Application.ScreenUpdating = False
ChDrive "d"
ChDir "D:\Test"
TmpDatei = Dir("D:\Test\*.txt")
Do While TmpDatei <> ""
Workbooks.OpenText TmpDatei
' Hier kannst deinen Code einfügen
' Dateinamen anpassen
FName = Left(TmpDatei, Len(TmpDatei) - 4) & "xls"
' Als XLS speichern
ActiveWorkbook.SaveAs Filename:="D:\Test1\" & FName, FileFormat:=xlNormal
ActiveWorkbook.Close
TmpDatei = Dir()
Loop
End Sub
- Passe den Speicherort in
ChDir
und SaveAs
an Deine Bedürfnisse an.
- Führe das Makro aus, um alle TXT-Dateien im angegebenen Verzeichnis zu öffnen und als XLS-Dateien zu speichern.
Häufige Fehler und Lösungen
-
Fehler: "Datei nicht gefunden."
- Lösung: Überprüfe den Pfad in
ChDir
und stelle sicher, dass die TXT-Dateien im angegebenen Verzeichnis sind.
-
Fehler: Explorer öffnet sich zur Dateiauswahl.
- Lösung: Stelle sicher, dass Du
Workbooks.OpenText
verwendest, um die Datei direkt zu öffnen, ohne eine Auswahl zu treffen.
-
Fehler: Datei wird nicht als XLS gespeichert.
- Lösung: Überprüfe, ob der Dateiname korrekt generiert wird. Achte darauf, dass die Endung ".txt" korrekt abgeschnitten wird.
Alternative Methoden
-
Excel-Datei öffnen und bearbeiten ohne Excel:
- Du kannst auch externe Tools wie Python oder PowerShell nutzen, um TXT-Dateien zu verarbeiten und sie in das Excel-Format zu konvertieren.
-
Batch-Dateien verwenden:
- Erstelle eine Batch-Datei, die eine VBA-Excel-Anwendung aufruft, um mehrere Dateien nacheinander zu verarbeiten.
Praktische Beispiele
Hier ist ein Beispiel, wie Du das Makro anpassen kannst, um spezifische Formatierungen auf die TXT-Dateien anzuwenden, bevor Du sie speicherst:
Sub DateienOeffnen()
Dim TmpDatei As String
Dim FName As String
Application.ScreenUpdating = False
ChDrive "d"
ChDir "D:\Test"
TmpDatei = Dir("D:\Test\*.txt")
Do While TmpDatei <> ""
Workbooks.OpenText TmpDatei
' Beispiel für Formatierung
With ActiveSheet
.Columns("A:A").AutoFit
.Range("A1").Font.Bold = True
End With
FName = Left(TmpDatei, Len(TmpDatei) - 4) & "xls"
ActiveWorkbook.SaveAs Filename:="D:\Test1\" & FName, FileFormat:=xlNormal
ActiveWorkbook.Close
TmpDatei = Dir()
Loop
End Sub
Tipps für Profis
-
Verwende Application.DisplayAlerts = False
: Damit kannst Du die Bestätigungsdialoge beim Speichern unterdrücken.
-
Dateipfade dynamisch gestalten: Nutze InputBoxen, um den Benutzer nach Verzeichnissen zu fragen, damit das Makro flexibler wird.
-
Fehlerbehandlung einfügen: Implementiere einen On Error Resume Next
Block, um Fehler während der Ausführung abzufangen.
FAQ: Häufige Fragen
1. Kann ich auch .dir-Dateien öffnen?
Ja, Du kannst ähnliche Methoden verwenden, um .dir-Dateien zu öffnen. Stelle sicher, dass Du die richtigen Dateiformate und Pfade angibst.
2. Wie ändere ich den Excel-Dateityp ohne die Datei zu öffnen?
Das ist mit VBA nicht direkt möglich. Du musst die Datei erst öffnen, um sie dann im gewünschten Format zu speichern.
3. Gibt es eine Möglichkeit, Excel-Temporärdateien wiederherzustellen?
Ja, Du kannst die temporären Dateien in dem Verzeichnis finden, wo Excel seine temporären Dateien speichert. Diese Dateien haben oft die Endung .tmp.