Hướng dẫn cách sử dụng Autofilter giữa các khoảng thời gian trong VBA

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:

  • Người Việt Nam thường dùng quy ước ngày tháng theo kiểu “Ngày-Tháng-Năm”, đây là hệ ngày tháng kiểu Pháp
  • VBA dùng mặc định quy ước ngày tháng theo kiểu “Tháng-Ngày-Năm”, đây là kiểu Anh-Mỹ

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’

  • Đặt 2 giá trị Từ ngày vào ô C1, Đến ngày vào ô D1
  • Gán 2 biến Từ ngày và Đến ngày liên kết tới nội dung ở ô C1, D1.

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:

  • Điều kiện 1 là >= Từ ngày
  • Điều kiện 2 là <= Đến ngày

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:

  • Cách 1: Dùng duy nhất 1 điều kiện bằng với ngày được chọn
  • Cách 2: Dùng 2 điều kiện ngày:

Đ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:


Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản