Ta vadnica bo pokazala, kako uporabiti metodo MoveFile za FileSystemObject.
Premikanje datotek z VBA FileSystemObject
Metoda MoveFile premakne eno ali več datotek z ene lokacije na drugo.
Nastavite referenco VBA
Najprej boste morali pri uporabi FileSystemObjects nastaviti sklic na knjižnico časa izvajanja skripta VB: odprite urejevalnik Visual Basic (ALT+F11), v spustnem meniju izberite Orodja> Reference in potrdite polje "Microsoft Scripting Runtime".
FileSystemObject
Drugič, morate ustvariti FileSystemObject:
12 | Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject") |
Zdaj imate dostop do MoveFile in drugih metod FileSystemObject.
Programiranje VBA | Generator kod deluje za vas!
Premakni eno datoteko
Če želite premakniti eno datoteko, uporabite preprosto sintakso FSO.MoveFile (vir, cilj).
1 | FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt" |
Kot je navedeno zgoraj, morate najprej ustvariti FileSystemObject:
1234567 | Sub FSOMoveFile ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"End Sub |
Premakni več datotek
Lahko premaknete več datotek z istim imenom:
1 | FSO.MoveFile "C: \ Src \ TestFile*.txt", "C: \ Dst \" |
Lahko pa premaknete več datotek z isto razširitvijo:
1 | FSO.MoveFile "C: \ Src \ *.xlsx", "C: \ Dst \" |
Ali preprosto vse datoteke iz mape:
1 | FSO.MoveFile "C: \ Src \*", "C: \ Dst \" |
Upoštevajte, da tukaj uporabljamo nadomestni znak *.
Namesto * nadomestnega znaka * lahko vse datoteke v mapi premaknete z zanko Za vsak.
12345678910111213141516 | Sub FSOMoveAllFiles ()Zatemni FSO kot nov datotečni sistemObjektZatemni FromPath As StringZatemni ToPath kot nizZatemni datoteko FileInFromFolder kot objektFromPath = "C: \ Src \"ToPath = "C: \ Dst \"Nastavite FSO = CreateObject ("Scripting.FileSystemObject")Za vsako datoteko FileInFromFolder v datoteki FSO.GetFolder (FromPath)FileInFromFolder.Move ToPathNaslednji FileInFromFolderEnd Sub |
Premakni datoteko v novo mapo
Datoteke lahko premaknete tudi v novo ustvarjeno mapo. Če želite to narediti, dodajte ukaz
1 | MkDir "C: \ Dst \" |
preden razglasite ciljno pot.
1234567891011121314151617 | Sub FSOMoveAllFiles ()Zatemni FSO kot nov datotečni sistemObjektZatemni FromPath As StringZatemni ToPath kot nizZatemni datoteko FileInFromFolder kot objektFromPath = "C: \ Src \"MkDir "C: \ Dst \"ToPath = "C: \ Dst \"Nastavite FSO = CreateObject ("Scripting.FileSystemObject")Za vsako datoteko FileInFromFolder v datoteki FSO.GetFolder (FromPath)FileInFromFolder.Move ToPathNaslednji FileInFromFolderEnd Sub |
Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!
Premakni mape
Za premikanje map lahko uporabite analogno metodo MoveFolder.
1234567 | Sub FSOMoveFolder ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFolder "C: \ OldFolder", "C: \ Dst \ NewFolder"End Sub |