In Textdatei suchen und ersetzen
Schritt-für-Schritt-Anleitung
Um in einer Textdatei mit einer bestimmten Endung, wie z.B. .ini
, einen Text zu suchen und zu ersetzen, kannst du das folgende VBA-Makro verwenden. Es wird alle Textdateien im angegebenen Verzeichnis bearbeiten, ohne die Dateinamen zu verändern.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Wähle im Menü "Einfügen" die Option "Modul", um ein neues Modul zu erstellen.
- Kopiere und füge den folgenden Code in das Modul ein:
Sub SubstituteInTextFiles()
Dim arr() As String
Dim iCounter As Integer
Dim sSource As String, sTarget As String, sTxtA As String
Dim sTxtB As String, sTxt As String, sPath As String
Dim fileName As String
sPath = ThisWorkbook.Path & "\"
sTxtA = Range("b2").Value ' alter Text
sTxtB = Range("b3").Value ' neuer Text
fileName = Dir(sPath & "*.ini") ' Hier wird nach .ini Dateien gesucht.
Do While fileName <> ""
sSource = sPath & fileName
sTarget = sSource ' Neuer Name bleibt gleich
Close
Open sSource For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
If InStr(sTxt, sTxtA) Then
sTxt = Replace(sTxt, sTxtA, sTxtB)
End If
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sTxt
Loop
Close
Open sTarget For Output As #1
For iCounter = 1 To UBound(arr)
Print #1, arr(iCounter)
Next iCounter
Close
fileName = Dir ' Nächste Datei
Loop
MsgBox "Job erledigt!"
End Sub
- Stelle sicher, dass die Zellen
B2
und B3
den alten und den neuen Text enthalten.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Alternative Methoden
Eine Alternative zum VBA-Makro ist die Verwendung von Power Query, um Textdateien in Excel zu importieren und den Text dort zu bearbeiten. Dies ist besonders nützlich, wenn du eine große Anzahl von Dateien verwalten möchtest.
- Gehe zu
Daten
> Abrufen und transformieren
> Aus Datei
> Aus Ordner
.
- Wähle den gewünschten Ordner und importiere die Dateien.
- Verwende die Abfrage-Editor-Funktionalität, um Text zu ersetzen.
Praktische Beispiele
Angenommen, du hast mehrere .ini
-Dateien im Ordner und möchtest den Text "alt" durch "neu" ersetzen.
- Setze in
B2
"alt" und in B3
"neu".
- Führe das VBA-Makro aus.
- Alle Vorkommen von "alt" in den .ini-Dateien werden durch "neu" ersetzt.
Tipps für Profis
- Verwende
Debug.Print
innerhalb deiner Schleifen, um den Fortschritt zu überwachen und sicherzustellen, dass die richtigen Dateien bearbeitet werden.
- Stelle sicher, dass du regelmäßig Backups deiner Dateien machst, bevor du Massenänderungen vornimmst.
FAQ: Häufige Fragen
1. Kann ich das Makro für andere Dateitypen verwenden?
Ja, ändere einfach die Zeile fileName = Dir(sPath & "*.ini")
auf die gewünschte Endung, z.B. fileName = Dir(sPath & "*.txt")
.
2. Wie kann ich den alten Text dynamisch ändern?
Du kannst die Zellen B2
und B3
im Excel-Blatt anpassen, bevor du das Makro ausführst. So kannst du verschiedene Texte ohne Änderung im Code verwenden.