#vba #filesystemobject
Вопрос:
Пожалуйста, просмотрите мой код, исправьте меня, где я ошибаюсь, файлы не перемещаются из папки в папку.
Option Explicit
Sub MoveFiles()
Dim FSO As Object
Dim FromDir As String
Dim ToDir As String
Dim FExtension As String
Dim Fnames As String
FromDir = "C:UsersBSource Folder"
ToDir = "C:UsersBDestination Folder"
FExtension = "*.*"
Fnames = Dir(FromDir amp; FExtension)
If Len(Fnames) = 0 Then
MsgBox "No files or Files already moved" amp; FromDir
Exit Sub
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFile Source:=FromDir amp; FExtension, Destination:=ToDir
End Sub
Ответ №1:
Проблема
Вам не хватает точки
в конце FromDir
, которая отделит путь от ваших имен файлов.
Для вашей информации: amp;
на самом деле это не объединение пути и имени файла, а просто объединение двух строк, поэтому оно никогда не добавляет само
себя.
Возможность коррекции 1
Вы можете добавить его в определение FromDir:
FromDir = "C:UsersBSource Folder"
Возможность коррекции 2
Добавьте его в эти строки кода динамически:
Fnames = Dir(FromDir amp; "" amp; FExtension)
FSO.MoveFile Source:=FromDir amp; "" amp; FExtension, Destination:=ToDir
Еще одно замечание
Вы также должны отделиться FromDir
от текста ошибки, как это:
MsgBox "No files or Files already moved: " amp; FromDir