Через FSO VBA — Файлы не перемещаются, пожалуйста, просмотрите мой код, я не понимаю, почему файлы не перемещаются. Я пытаюсь выполнить его, но msg box

#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