Hướng dẫn này sẽ trình bày cách sử dụng phương thức MoveFile của FileSystemObject.
Di chuyển tệp bằng VBA FileSystemObject
Phương thức MoveFile di chuyển một hoặc nhiều tệp từ vị trí này sang vị trí khác.
Đặt tham chiếu VBA
Đầu tiên, khi sử dụng FileSystemObjects, bạn có thể phải đặt tham chiếu đến thư viện thời gian chạy tập lệnh VB: mở Visual Basic Editor (ALT + F11), chọn Công cụ> Tham chiếu từ trình đơn thả xuống và đánh dấu vào hộp kiểm 'Microsoft Scripting Runtime'.
FileSystemObject
Thứ hai, bạn phải tạo FileSystemObject:
12 | Làm mờ FSO dưới dạng FileSystemObject mớiĐặt FSO = CreateObject ("Scripting.FileSystemObject") |
Bây giờ bạn có quyền truy cập vào MoveFile và các Phương thức FileSystemObject khác.
Lập trình VBA | Code Generator làm việc cho bạn!
Di chuyển một tệp
Để di chuyển một tệp, bạn có thể sử dụng cú pháp đơn giản của FSO.MoveFile (nguồn, đích).
1 | FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt" |
Như đã đề cập ở trên, trước tiên bạn cần tạo FileSystemObject:
1234567 | Sub FSOMoveFile ()Làm mờ FSO dưới dạng FileSystemObject mớiĐặt FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"Kết thúc Sub |
Di chuyển nhiều tệp
Bạn có thể di chuyển nhiều tệp có các phần giống nhau:
1 | FSO.MoveFile "C: \ Src \ TestFile * .txt", "C: \ Dst \" |
Hoặc bạn có thể di chuyển nhiều tệp có cùng một phần mở rộng:
1 | FSO.MoveFile "C: \ Src \ * .xlsx", "C: \ Dst \" |
Hoặc đơn giản là tất cả các tệp từ một thư mục:
1 | FSO.MoveFile "C: \ Src \ *", "C: \ Dst \" |
Lưu ý, ở đây chúng tôi sử dụng ký tự đại diện *.
Thay vì sử dụng ký tự đại diện *, bạn có thể di chuyển tất cả các tệp trong một thư mục bằng vòng lặp Cho Mỗi.
12345678910111213141516 | Sub FSOMoveAllFiles ()Làm mờ FSO dưới dạng FileSystemObject mớiDim FromPath As StringLàm mờ đường dẫn đến dưới dạng chuỗiDim FileInFromFolder As ObjectFromPath = "C: \ Src \"ToPath = "C: \ Dst \"Đặt FSO = CreateObject ("Scripting.FileSystemObject")Đối với mỗi FileInFromFolder Trong FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathFileInFromFolder tiếp theoKết thúc Sub |
Di chuyển tệp sang thư mục mới
Bạn cũng có thể di chuyển (các) tệp vào một thư mục mới được tạo. Để làm như vậy, hãy thêm lệnh
1 | MkDir "C: \ Dst \" |
trước khi khai báo đường dẫn đích.
1234567891011121314151617 | Sub FSOMoveAllFiles ()Làm mờ FSO dưới dạng FileSystemObject mớiDim FromPath As StringLàm mờ đường dẫn đến dưới dạng chuỗiDim FileInFromFolder As ObjectFromPath = "C: \ Src \"MkDir "C: \ Dst \"ToPath = "C: \ Dst \"Đặt FSO = CreateObject ("Scripting.FileSystemObject")Đối với mỗi FileInFromFolder Trong FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathFileInFromFolder tiếp theoKết thúc Sub |
Bạn mệt mỏi với việc tìm kiếm ví dụ về mã VBA? Hãy thử AutoMacro!
Di chuyển thư mục
Bạn có thể sử dụng phương pháp tương tự MoveFolder để di chuyển các thư mục.
1234567 | Sub FSOMoveFolder ()Làm mờ FSO dưới dạng FileSystemObject mớiĐặt FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFolder "C: \ OldFolder", "C: \ Dst \ NewFolder"Kết thúc Sub |