Dateien mit VBA-FileSystemObject (MoveFile) verschieben
In this Article
In diesem Tutorial zeigen wir Ihnen, wie Sie die MoveFile-Methode des FileSystemObjects verwenden können.
Dateien mit VBA FileSystemObject verschieben
Die MoveFile-Methode verschiebt eine oder mehrere Dateien von einem Speicherort zu einem anderen.
VBA-Verweis setzen
Wenn Sie FileSystemObject verwenden wollen, müssen Sie zuerst einen Verweis auf die VB-Skript-Laufzeitbibliothek setzen. Öffnen Sie dazu den Visual Basic Editor (ALT + F11), wählen Sie Verweise im Dropdown-Menü Extras und aktivieren Sie das Kontrollkästchen „Microsoft Scripting Runtime“.
FileSystemObject
Zweitens müssen Sie das FileSystemObject erstellen:
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Jetzt haben Sie Zugriff auf MoveFile und die anderen FileSystemObject-Methoden.
Eine Datei verschieben
Um eine einzelne Datei zu verschieben, können Sie die einfache Syntax von FSO.MoveFile(Quelle, Ziel) verwenden.
FSO.MoveFile "C:\Quelle\Testdatei.txt", "C:\Ziel\ModTestdatei.txt"
Wie oben erwähnt, müssen Sie zunächst das FileSystemObject erstellen:
Sub FSOMoveFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "C:\Quelle\Testdatei.txt", "C:\Ziel\ModTestdatei.txt"
End Sub
Mehrere Dateien verschieben
Sie können mehrere Dateien mit denselben Namensteilen verschieben:
FSO.MoveFile "C:\Quelle\Testdatei*.txt", "C:\Ziel\"
Oder Sie können mehrere Dateien mit der gleichen Erweiterung verschieben:
FSO.MoveFile "C:\Quelle\ *.xlsx", "C:\Ziel\"
Oder einfach alle Dateien aus einem Ordner:
FSO.MoveFile "C:\Quelle\*", "C:\Ziel\"
Beachten Sie, dass wir hier das Platzhalterzeichen * verwenden.
Anstatt den Platzhalter * zu verwenden, können Sie auch alle Dateien in einem Ordner mit einer For-Each-Schleife verschieben.
Sub FSO_AlleDateienVerschieben ()
Dim FSO As New FileSystemObject
Dim QuellPfad As String
Dim ZielPfad As String
Dim DateiInQuellOrdner As Object
QuellPfad = "C:\Quelle\"
ZielPfad = "C:\Ziel\"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each DateiInQuellOrdner In FSO.GetFolder(QuellPfad).Files
DateiInQuellOrdner.Move ZielPfad
Next DateiInQuellOrdner
End Sub
Datei in einen neuen Ordner verschieben
Sie können die Datei(en) auch in einen neu erstellten Ordner verschieben. Fügen Sie dazu den folgenden Befehl ein:
MkDir "C:\Ziel\"
bevor Sie den Zielpfad angeben.
Sub FSO_AlleDateienVerschieben ()
Dim FSO As New FileSystemObject
Dim QuellPfad As String
Dim ZielPfad As String
Dim DateiInQuellOrdner As Object
QuellPfad = "C:\Quelle\"
MkDir "C:\Ziel\"
ZielPfad = "C:\Ziel\"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each DateiInQuellOrdner In FSO.GetFolder(QuellPfad).Files
DateiInQuellOrdner.Move ZielPfad
Next DateiInQuellOrdner
End Sub
Ordner verschieben
Zum Verschieben von Ordnern können Sie die analoge Methode MoveFolder verwenden.
Sub FSO_OrdnerVerschieben()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFolder "C:\AlterOrdner", "C:\Ziel\NeuerOrdner"
End Sub