Trong hướng dẫn này, bạn sẽ học cách lấy tên của tất cả các tệp trong một thư mục và đưa chúng vào Trang tính.
Thay vào đó, nếu bạn muốn tìm hiểu cách kiểm tra xem tệp có tồn tại hay không, bạn có thể nhấp vào liên kết này: Tệp VBA Tồn tại
Sử dụng FileSystemObject để lấy danh sách các tệp trong một thư mục
VBA cho phép bạn liệt kê tất cả các tệp từ một thư mục, bằng cách sử dụng FileSystemObject.
Chúng tôi sẽ hướng dẫn cách lấy danh sách các tệp trong thư mục Thư mục C: \ VBA và đặt nó vào cột đầu tiên của Trang tính. Thư mục này bao gồm 5 tệp, như được hiển thị trong Hình 1:
Hình ảnh 1. Các tệp trong thư mục C: \ VBA Folder
Đây là mã:
1234567891011121314151617181920 | Sub LoopThroughFiles ()Làm mờ oFSO dưới dạng đối tượngDim oFolder As ObjectDim oFile As ObjectDim i As IntegerĐặt oFSO = CreateObject ("Scripting.FileSystemObject")Đặt oFolder = oFSO.GetFolder ("Thư mục C: \ VBA")Đối với mỗi oFile Trong oFolder.FilesCác ô (i + 1, 1) = oFile.Namei = i + 1OFile tiếp theoKết thúc Sub |
Trong ví dụ này, trước tiên hãy tạo một đối tượng của lớp Scripting.FileSystemObject:
1 | Đặt oFSO = CreateObject ("Scripting.FileSystemObject") |
Sau đó đặt thư mục bằng phương pháp GetFolder:
1 | Đặt oFolder = oFSO.GetFolder ("Thư mục C: \ VBA") |
Vòng lặp tiếp theo qua từng tệp trong oFolder, sử dụng oFile.Name thành lấy tên của mọi tệp trong thư mục và viết nó vào hàng trống tiếp theo:
123456 | Đối với mỗi oFile Trong oFolder.FilesCác ô (i + 1, 1) = oFile.Namei = i + 1OFile tiếp theo |
Hình ảnh 2. Trang tính với danh sách các tệp trong thư mục
Như bạn có thể thấy trong Hình 2, tất cả 5 tệp từ Thư mục C: \ VBA đều được liệt kê trong cột đầu tiên.