Sub MoveFiles() Dim xFd As FileDialog Dim xTFile As String Dim xExtArr As Variant Dim xExt As Variant Dim xSPath As String Dim xDPath As String Dim xSFile As String Dim xCount As Long Set xFd = Application.FileDialog(msoFileDialogFolderPicker) xFd.Title = "Please Select Original Folder:" If xFd.Show = -1 Then xSPath = xFd.SelectedItems(1) Else Exit Sub End If If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\" xFd.Title = "Please Select Destination folder:" If xFd.Show = -1 Then xDPath = xFd.SelectedItems(1) Else Exit Sub End If If Right(xDPath, 1) <> "\" Then xDPath = xDPath + "\" xExtArr = Array("*.xlsm*", "*.Docx") For Each xExt In xExtArr xTFile = Dir(xSPath & xExt) Do While xTFile <> "" xSFile = xSPath & xTFile FileCopy xSFile, xDPath & xTFile Kill xSFile xTFile = Dir xCount = xCount + 1 Loop Next MsgBox "Total number of moved files is: " & xCount, vbInformation, "Move File(S)" End Sub
Wie es funktioniert:
- Kopieren Sie diesen Code als Standardmodul.
- Führen Sie das Makro aus.
- Es öffnet den Explorer und fordert Sie auf, den Originalordner (Quellordner) auszuwählen.
- Wählen Sie den Ordner und drücken Sie OK.
- Sie werden erneut aufgefordert, den Zielordner auszuwählen.
- Drücken Sie OK, bald erhalten Sie ein Nachrichtenfeld mit der Anzahl der kopierten Dateien.
Hinweis:
- Diese Zeile kann bearbeitet
Array("*.xlsm*", "*.Docx")
werden. Sie können sie nachFile extensions
Bedarf durch andere ersetzen .