Menu

Tự động hóa việc tạo danh sách duy nhất từ nhiều sheet bằng VBA

Đèo Linh Bắc 24/03/2026 00:20 255 lượt xem 1 trả lời

Chào các anh chị em trong diễn đàn,

Dạo này công việc của mình liên quan nhiều đến việc tổng hợp dữ liệu từ các file Excel khác nhau. Thường thì mình phải copy paste thủ công rồi dùng chức năng Remove Duplicates để lấy danh sách duy nhất. Tuy nhiên, với số lượng file lớn, cách này tốn rất nhiều thời gian và dễ sai sót.

Mình đang tìm hiểu về VBA và muốn tự động hóa việc này. Cụ thể, mình muốn viết một đoạn code VBA để:

  • Chọn một thư mục chứa các file Excel.
  • Duyệt qua từng file trong thư mục đó.
  • Mở từng file và copy dữ liệu từ một cột cụ thể (ví dụ: cột A).
  • Dán tất cả dữ liệu vào một sheet duy nhất trong file chính.
  • Cuối cùng, lấy ra danh sách các giá trị duy nhất từ cột đó và hiển thị ở một sheet khác.

Mình đã thử tìm kiếm trên mạng nhưng chưa có đoạn code nào đáp ứng được hết các yêu cầu trên. Có anh chị em nào đã từng làm hoặc có kinh nghiệm về mảng này có thể chia sẻ giúp mình một đoạn code mẫu hoặc hướng dẫn các bước cơ bản để thực hiện không ạ?

Mình xin cảm ơn trước!

5

Chào bạn,

Mình hiểu vấn đề của bạn, việc tổng hợp dữ liệu thủ công từ nhiều file đúng là rất mất thời gian. Bạn đang đi đúng hướng khi nghĩ đến VBA để tự động hóa.

Để giúp bạn, mình có một vài gợi ý thế này:

1. Sử dụng FileSystemObject: Cái này sẽ giúp bạn duyệt qua tất cả các file trong thư mục bạn chọn. 2. Mở file và lấy dữ liệu: Sau khi duyệt, bạn có thể mở từng file, copy dữ liệu cần thiết (ví dụ: từ một sheet cụ thể hoặc một vùng dữ liệu cố định). 3. Lưu trữ và loại bỏ trùng lặp: Bạn có thể lưu tất cả dữ liệu vào một mảng hoặc một Dictionary, sau đó Dictionary sẽ tự động xử lý phần loại bỏ trùng lặp cho bạn rất hiệu quả.

Bạn có thể cho biết rõ hơn là dữ liệu bạn muốn lấy từ các sheet là ở cột nào, hoặc có tiêu đề chung không? Như vậy mình có thể đưa ra code mẫu cụ thể hơn cho bạn.

Chúc bạn thành công!

3

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký