Macro tạo ô lọc auto hiển thị dữ liệu


Tại sao nên và không nên dùng ô lọc auto hiển thị?

NÊN vì: Dùng auto filter phải click vào ô filter, đánh giá trị cần và bấm enter, sau khi enter thì auto filter cũng biến mất, cần lại phải click vào(phím tắt truy cập nhanh vào ô lọc là ALT+↓+E-nếu bạn không quen dùng phím tắt thì bấm chuột còn phiền hơn)

Dung ô lọc auto bạn không gặp những phiền phức trên

KHÔNG nên vì: Ô lọc auto bắt buộc dùng dữ liệu dang table, khá là nặng nếu data lớn.

Các bước:

  1. Insert table cho vùng data, ở ví dụ trong bài table  có tên Table3

  1. Tạo textbox Active-X từ thanh Developer, chuột phải->Propeties để điền LinkedCell với ô nào đó(mà chắc chắn không dùng), như bảng dưới  link ô C1 và cột dùng auto filter là cột thứ 3 trong Table

  1. Chuột phải vào textbox để chọn Viewcode và điền đoạn code này vào:

Private Sub TextBox1_Change()


Dim xStr, xName As String

Dim xWS As Worksheet

Dim xRg As Range

    On Error GoTo Err01

    Application.ScreenUpdating = False

‘Xname= tên bảng, bảng của tôi tên table3 nên tôi điền table3

    xName = "table3"

    xStr = TextBox1.Text

    Set xWS = ActiveSheet

    Set xRg = xWS.ListObjects(xName).Range

    If xStr <> "" Then

‘3 ở đây là cột chứa giá trị tôi muốn filter

        xRg.AutoFilter field:=3, Criteria1:="*" & xStr & "*", Operator:=xlFilterValues

    Else

        xRg.AutoFilter field:=3, Operator:=xlFilterValues

    End If

Err01:

Application.ScreenUpdating = True

End Sub



Nhận xét