Този урок ще покаже как да използвате метода MoveFile на FileSystemObject.
Преместване на файлове с VBA FileSystemObject
Методът MoveFile премества един или повече файлове от едно място на друго.
Задайте VBA Reference
Първо, когато използвате FileSystemObjects, може да се наложи да зададете препратка към библиотеката по време на изпълнение на скрипта VB: отворете редактора на Visual Basic (ALT+F11), изберете Инструменти> Препратки от падащото меню и поставете отметка в квадратчето за „Microsoft Scripting Runtime“.
FileSystemObject
Второ, трябва да създадете FileSystemObject:
12 | Затъмнете FSO като нов FileSystemObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject") |
Сега имате достъп до MoveFile и другите методи на FileSystemObject.
VBA програмиране | Code Generator работи за вас!
Преместете един файл
За да преместите един файл, можете да използвате простия синтаксис на 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 \" |
Забележете, тук използваме заместващия знак *.
Вместо * заместващ знак *, можете да преместите всички файлове в папка, като използвате цикъл за всеки.
12345678910111213141516 | Sub FSOMoveAllFiles ()Затъмнете FSO като нов FileSystemObjectЗатъмнете FromPath As StringЗатъмнете 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 As StringЗатъмнете 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 |