Việc sử dụng AutoFilter với điều kiện là ngày tháng trong VBA có thể khiến bạn gặp một số khó khăn. Nó xuất phát bởi quy ước về cách thể hiện giá trị thời gian khác nhau:
Do đó trong một số trường hợp sử dụng AutoFilter với điều kiện liên quan tới ngày tháng, Excel VBA sẽ hiểu sai về điều kiện chúng ta sử dụng trong câu lệnh AutoFilter, dẫn tới kết quả không như chúng ta mong muốn.
Ví dụ về lỗi thường gặp với AutoFilter với dữ liệu ngày tháng:
* Dòng lệnh được tạo bởi chức năng Record Macro như sau:
Nhưng khi chạy lại đoạn Macro trên thì sẽ không thu được kết quả:
Để khắc phục lỗi này chúng ta làm như sau:
Bước 1: Đưa dữ liệu cần lọc vào 1 vị trí nhất định, gán biến cho vị trí ngày là dạng dữ liệu ‘Long’
Bước 2: Lọc theo điều kiện ngày tháng đã được gán theo biến
Điều kiện lọc gồm 2 điều kiện:
Chúng ta có thể xem kết quả như sau:
* Lưu ý: loại dữ liệu của biến phải là loại dữ liệu kiểu số. Đây là kiểu dữ liệu mặc định của dữ liệu ngày tháng, do đó AutoFilter của Excel sẽ luôn hoạt động đúng cho dù loại ngày là dạng “dd/mm/yyyy” hay là dạng “mm/dd/yyyy”
Với dữ liệu dạng ngày đơn lẻ (chỉ 1 ngày) có thể dùng 2 cách:
Điều kiện 1 >= Ngày được chọn
Điều kiện 2 <= Ngày được chọn
VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook… giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp…
Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại: