Tệp danh sách VBA trong thư mục

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.

wave wave wave wave wave