Hướng dẫn sử dụng VBA làm việc với file trong thư mục khác

Bạn sẽ làm thế nào nếu muốn tập hợp dữ liệu từ nhiều file (workbook) vào chung 1 file? Chắc hẳn chúng ta thường làm là mở từng file đó ra rồi copy / paste dữ liệu. Vậy thì có cách nào để mở từng file đó một cách tự động?

Câu trả lời rất đơn giản: Sử dụng VBA để tự động hóa các thao tác.

Sau đây chúng ta hãy cùng Học Excel Online tìm hiểu những câu lệnh trong VBA giúp mở 1 file trong máy tính một cách tự động:

1. Lấy danh sách tên file và đường dẫn tới thư mục chứa file

Để lấy danh sách tên file trong thư mục, chúng ta cần xác định các yếu tố:

  • Đường dẫn tới thư mục
  • Loại file: căn cứ vào đuôi file (phần sau dấu chấm, thường mặc định là ẩn đi trong tên file)
  • Để lấy được tất cả các tên file thì chúng ta sẽ xét theo 1 vòng lặp với những file có tồn tại

2. Mở file và sao chép nội dung

Trong trường hợp 1, chúng ta đã nắm được cách lấy tên và đường dẫn tới 1 file nằm trong 1 thư mục bất kỳ. Việc mở thư mục đó và copy nội dung sang file khác sẽ được thực hiện như sau:

* Lưu ý:

Xác định rõ 2 đối tượng:

  • File cần mở để lấy nội dung, gồm sheet chứa nội dung, vùng nội dung cần copy
  • File đích cần lấy kết quả, gồm Sheet chứa kết quả, vùng kết quả

Với mỗi đối tượng cần xác định được quy trình, thứ tự thực hiện rõ ràng để tránh nhầm lẫn.

3. Lấy nội dung theo điều kiện từ 1 workbook khác

Trong trường hợp chúng ta cần lấy dữ liệu theo điều kiện xác định thì sẽ làm thế nào?  Khác với trường hợp 2 là lấy tất cả nội dung, trường hợp này chúng ta cần kết hợp với việc  lọc dữ liệu, sau đó lấy kết quả lọc được để sao chép sang file khác.

Câu lệnh như sau:

Thông qua các ví dụ trên chúng ta đã nắm được quy trình thực hiện và cách viết lệnh trong VBA rồi phải không nào.

Chúc các bạn học tốt cùng Học Excel Online!