W tym samouczku zademonstrujemy, jak używać metody MoveFile obiektu FileSystemObject.
Przenieś pliki za pomocą VBA FileSystemObject
Metoda MoveFile przenosi jeden lub więcej plików z jednej lokalizacji do drugiej.
Ustaw odniesienie VBA
Po pierwsze, podczas korzystania z FileSystemObjects może być konieczne ustawienie odwołania do biblioteki wykonawczej skryptu VB: otwórz Edytor Visual Basic (ALT+F11), wybierz z menu rozwijanego Narzędzia > Odwołania i zaznacz pole wyboru 'Microsoft Scripting Runtime'.
Obiekt systemu plików
Po drugie, musisz utworzyć FileSystemObject:
12 | Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject") |
Teraz masz dostęp do MoveFile i innych metod FileSystemObject.
Programowanie VBA | Generator kodu działa dla Ciebie!
Przenieś jeden plik
Aby przenieść pojedynczy plik, możesz użyć prostej składni FSO.MoveFile( source, destination ).
1 | FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt" |
Jak wspomniano powyżej, najpierw musisz utworzyć FileSystemObject:
1234567 | Sub FSOMoveFile()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"Napis końcowy |
Przenieś wiele plików
Możesz przenieść wiele plików z tymi samymi częściami nazw:
1 | FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\" |
Lub możesz przenieść wiele plików z tym samym rozszerzeniem:
1 | FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\" |
Lub po prostu wszystkie pliki z folderu:
1 | FSO.MoveFile "C:\Src\*", "C:\Dst\" |
Zwróć uwagę, że używamy tutaj znaku wieloznacznego *.
Zamiast używać symbolu wieloznacznego *, możesz przenieść wszystkie pliki w folderze za pomocą pętli For Each.
12345678910111213141516 | Sub FSMoveAllFiles ()Dim FSO jako nowy obiekt systemu plikówDim FromPath As StringDim ToPath As StringDim FileInFromFolder As ObjectFromPath = "C:\Src\"ToPath = "C:\Dst\"Ustaw FSO = CreateObject("Scripting.FileSystemObject")Dla każdego pliku FileInFromFolder w FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathNastępny plik z folderuNapis końcowy |
Przenieś plik do nowego folderu
Możesz również przenieść plik(i) do nowo utworzonego folderu. Aby to zrobić, dodaj polecenie
1 | MkDir "C:\Dst\" |
przed zadeklarowaniem ścieżki docelowej.
1234567891011121314151617 | Sub FSMoveAllFiles ()Dim FSO jako nowy obiekt systemu plikówDim FromPath As StringDim ToPath As StringDim FileInFromFolder As ObjectFromPath = "C:\Src\"MkDir "C:\Dst\"ToPath = "C:\Dst\"Ustaw FSO = CreateObject("Scripting.FileSystemObject")Dla każdego pliku FileInFromFolder w FSO.GetFolder(FromPath).FilesFileInFromFolder.Move ToPathNastępny plik z folderuNapis końcowy |
Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!
Przenieś foldery
Do przenoszenia folderów można użyć metody analogowej MoveFolder.
1234567 | Podrzędny FSOPrzesuńFolder()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")FSO.MoveFolder "C:\StaryFolder", "C:\Dst\NowyFolder"Napis końcowy |