Zeichen in Dateinamen ersetzen mit VBA
Schritt-für-Schritt-Anleitung
Um Zeichen in Dateinamen per VBA zu ersetzen, folge diesen Schritten:
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > Modul
.
-
Kopiere den folgenden Code in das Modul:
Sub test()
Dim Datei As String
Dim Pfad As String
Dim NameNeu As String
Dim NameAlt As String
Pfad = "D:\Daten\"
Datei = Dir(Pfad & String(22, "?") & ".pdf")
Do While Datei <> ""
If Right(Datei, 7) <> "###.pdf" Then
NameAlt = Pfad & Datei
NameNeu = Pfad & "#" & Mid(Datei, 2, 18) & "###.pdf"
Name NameAlt As NameNeu
End If
Datei = Dir
Loop
End Sub
-
Ändere den Pfad, falls deine Dateien in einem anderen Verzeichnis liegen.
-
Starte das Skript: Drücke F5
oder gehe zu Run > Run Sub/UserForm
.
Dieses Skript ersetzt die Zeichen 1, 20, 21 und 22 in den Dateinamen von PDF-Dateien, die genau 22 Zeichen lang sind (ohne Dateiendung).
Häufige Fehler und Lösungen
-
Fehler: "Datei nicht gefunden"
- Lösung: Überprüfe den Pfad. Stelle sicher, dass der angegebene Ordner und die Dateien existieren.
-
Fehler: "Zugriff verweigert"
- Lösung: Stelle sicher, dass Excel die erforderlichen Berechtigungen hat, um auf die Dateien im angegebenen Verzeichnis zuzugreifen.
-
Fehler: Unerwartetes Verhalten des Skripts
- Lösung: Vergewissere dich, dass keine Dateien mit dem Namen "###.pdf" bereits existieren, da dies zu Konflikten führen kann.
Alternative Methoden
Wenn du kein VBA verwenden möchtest, kannst du auch Batch-Dateien oder PowerShell nutzen, um ähnliche Aufgaben durchzuführen. Hier ein einfaches Beispiel mit PowerShell:
Get-ChildItem "D:\Daten\" -Filter "*.pdf" | Where-Object { $_.Name.Length -eq 26 } |
ForEach-Object {
$newName = $_.Name.Substring(0,1) + "#" + $_.Name.Substring(1,18) + "###.pdf"
Rename-Item $_.FullName -NewName $newName
}
Diese Methode ermöglicht dir das gleiche Ergebnis, ohne den VBA-Editor zu verwenden.
Praktische Beispiele
Hier sind einige Beispiele, wie das VBA-Skript funktioniert:
-
Vorher: 2_KUN_080_00_40258_--0.pdf
-
Nachher: #_KUN_080_00_40258_###.pdf
-
Vorher: Lorem_Ipsum_12345678901234567890.pdf
-
Nachher: #orem_Ipsum_123456789012345678###.pdf
Diese Beispiele verdeutlichen, wie das Skript spezifische Zeichen in den Dateinamen ersetzt.
Tipps für Profis
- Backup der Dateien: Erstelle immer eine Sicherungskopie deiner Dateien, bevor du das Skript ausführst.
- Testlauf: Führe das Skript zunächst in einem Testverzeichnis aus, um sicherzustellen, dass es wie gewünscht funktioniert.
- Erweiterungen: Du kannst das Skript erweitern, um auch andere Dateiformate oder Zeichen zu bearbeiten, indem du die Filterbedingungen anpasst.
FAQ: Häufige Fragen
1. Kann ich das Skript anpassen?
Ja, du kannst die Zeichen, die ersetzt werden sollen, sowie den Dateityp im Skript anpassen.
2. Funktioniert das Skript in Excel 2016?
Ja, dieses VBA-Skript funktioniert in Excel 2016 und allen neueren Versionen.
3. Wie kann ich das Skript stoppen, wenn es zu lange dauert?
Wenn das Skript läuft, kannst du den VBA-Editor schließen oder Excel über den Task-Manager schließen, um den Prozess zu stoppen.