Một Table (bảng dữ liệu) được định nghĩa chung là.....dòng đầu của bảng là tiêu đề cột hay tên trường (field). Một bản ghi hiểu như một dòng trong Table là một người, một mặt hàng, một tài sản một vấn đề, nếu chúng có nhiều thuộc tính hay tính chất thì thêm cột để ghi cho nó.
Bản chất của AutoFilter là lọc chọn ra các bản ghi trong Table thoả mãn điều kiện cột hoặc vài cột, còn các bản ghi không thoả mãn thì bị ẩn đi.
Nếu muốn làm như WhoamI thì phải dùng VB thôi, điều này là làm được theo thuật toán: Lọc các cột theo điều kiện dòng hoặc vài dòng, cột nào không thoả mãn thì ẩn đi. Nếu làm như vậy thì phải có cách tổ chức dữ liệu nếu không thì vô lý lắm.
Nếu lập trình VB thì các thuật toán cơ bản là:
+ Viết một Class theo kiểu Combo Box đặt tên là Comb. Đây là việc khó nhất.
+ Chọn một vùng dữ liệu (Range) coi nó là một Table.
+ Chọn cột đầu tiên để đặt các nút lọc (kiểu Combo Box).
+ Tạo các nút từ Class Comb trong các dòng của cột đầu tiên (để hiệu quả dung Offset và OLEObjects).
Thực sự để làm được việc này cũng không đơn giản và phải có thời gian nữa.
Những điều viết trên chắc chắn WhoamI cũng biết rồi. Những ý tưởng của em hay nhưng làm nhiều người mất ngủ rồi.