В этом руководстве будет показано, как использовать метод MoveFile объекта FileSystemObject.
Перемещение файлов с помощью VBA FileSystemObject
Метод MoveFile перемещает один или несколько файлов из одного места в другое.
Установить ссылку VBA
Во-первых, при использовании FileSystemObjects вам может потребоваться установить ссылку на библиотеку времени выполнения сценария VB: откройте редактор Visual Basic (ALT + F11), выберите Инструменты> Ссылки из раскрывающегося меню и установите флажок «Среда выполнения сценариев Microsoft».
FileSystemObject
Во-вторых, вы должны создать FileSystemObject:
12 | Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject") |
Теперь у вас есть доступ к MoveFile и другим методам FileSystemObject.
Программирование на VBA | Генератор кода действительно работает для вас!
Переместить один файл
Чтобы переместить один файл, вы можете использовать простой синтаксис FSO.MoveFile (источник, место назначения).
1 | FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt" |
Как упоминалось выше, сначала вам нужно создать FileSystemObject:
1234567 | Подложка FSOMoveFile ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"Конец подписки |
Переместить несколько файлов
Вы можете перемещать несколько файлов с одинаковыми именами частей:
1 | FSO.MoveFile "C: \ Src \ TestFile * .txt", "C: \ Dst \" |
Или вы можете переместить несколько файлов с одинаковым расширением:
1 | FSO.MoveFile "C: \ Src \ * .xlsx", "C: \ Dst \" |
Или просто все файлы из папки:
1 | FSO.MoveFile "C: \ Src \ *", "C: \ Dst \" |
Обратите внимание, здесь мы используем подстановочный знак *.
Вместо использования подстановочного знака * вы можете переместить все файлы в папке с помощью цикла For Each.
12345678910111213141516 | Подложка FSOMoveAllFiles ()Dim FSO как новый объект FileSystemObjectРазмыть FromPath как строкуDim ToPath As StringDim FileInFromFolder как объектFromPath = "C: \ Src \"ToPath = "C: \ Dst \"Установите FSO = CreateObject ("Scripting.FileSystemObject")Для каждого FileInFromFolder в FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathСледующий FileInFromFolderКонец подписки |
Переместить файл в новую папку
Вы также можете переместить файл (ы) во вновь созданную папку. Для этого добавьте команду
1 | MkDir "C: \ Dst \" |
перед объявлением пути назначения.
1234567891011121314151617 | Подложка FSOMoveAllFiles ()Dim FSO как новый объект FileSystemObjectРазмыть FromPath как строкуDim ToPath As StringDim FileInFromFolder как объектFromPath = "C: \ Src \"MkDir "C: \ Dst \"ToPath = "C: \ Dst \"Установите FSO = CreateObject ("Scripting.FileSystemObject")Для каждого FileInFromFolder в FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathСледующий FileInFromFolderКонец подписки |
Устали искать примеры кода VBA? Попробуйте AutoMacro!
Переместить папки
Вы можете использовать аналогичный метод MoveFolder для перемещения папок.
1234567 | Подложка FSOMoveFolder ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFolder "C: \ OldFolder", "C: \ Dst \ NewFolder"Конец подписки |