Цей підручник покаже, як використовувати метод MoveFile для FileSystemObject.
Переміщення файлів за допомогою VBA FileSystemObject
Метод MoveFile переміщує один або кілька файлів з одного місця в інше.
Встановити посилання VBA
По-перше, під час використання FileSystemObjects вам може знадобитися встановити посилання на бібліотеку виконання сценарію VB: відкрийте редактор Visual Basic (ALT+F11), виберіть Інструменти> Посилання у спадному меню та встановіть прапорець біля "Виконання сценаріїв Microsoft".
FileSystemObject
По -друге, ви повинні створити FileSystemObject:
12 | Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject") |
Тепер у вас є доступ до MoveFile та інших методів FileSystemObject.
Програмування VBA | Генератор коду працює для вас!
Перемістити один файл
Для переміщення одного файлу можна використовувати простий синтаксис FSO.MoveFile (джерело, місце призначення).
1 | FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt" |
Як згадувалося вище, спочатку вам потрібно створити FileSystemObject:
1234567 | Sub FSOMoveFile ()Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"End Sub |
Перемістити кілька файлів
Ви можете перемістити кілька файлів з однаковими частинами імен:
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 | Sub FSOMoveAllFiles ()Затемнити FSO як новий FileSystemObjectЗатемнити FromPath як рядокЗатемнити ToPath як рядокЗатемнити FileInFromFolder як об'єктFromPath = "C: \ Src \"ToPath = "C: \ Dst \"Встановити FSO = CreateObject ("Scripting.FileSystemObject")Для кожного файлу FileInFromFolder у FSO.GetFolder (FromPath)FileInFromFolder.Move ToPathДалі FileInFromFolderEnd Sub |
Перемістити файл у нову папку
Ви також можете перемістити файли в нещодавно створену папку. Для цього додайте команду
1 | MkDir "C: \ Dst \" |
перед оголошенням шляху призначення.
1234567891011121314151617 | Sub FSOMoveAllFiles ()Затемнити FSO як новий FileSystemObjectЗатемнити FromPath як рядокЗатемнити ToPath як рядокЗатемнити FileInFromFolder як об'єктFromPath = "C: \ Src \"MkDir "C: \ Dst \"ToPath = "C: \ Dst \"Встановити FSO = CreateObject ("Scripting.FileSystemObject")Для кожного файлу FileInFromFolder у FSO.GetFolder (FromPath)FileInFromFolder.Move ToPathДалі FileInFromFolderEnd Sub |
Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!
Переміщення папок
Для переміщення папок можна використовувати аналоговий метод MoveFolder.
1234567 | Додатковий FSOMoveFolder ()Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFolder "C: \ OldFolder", "C: \ Dst \ NewFolder"End Sub |