Macro giúp tự động filter theo điều kiện. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Ngoanthihientrinh

Thành viên mới
Tham gia
1/2/16
Bài viết
15
Được thích
0
Dạ, em mới chập chững học Macro thôi. Em có một file mà nó bao gồm rất nhiều dữ liệu, mà em rất hay sử dụng thao tác lọc theo điều kiện gồm hai điều kiện: Begins with và Contains. Mục đích là lọc ra những dữ liệu phù hợp nhất để nhanh chóng thao tác cũng như xem xét quản lý.

Vấn đề là mình phải thực hiện việc lọc theo hai điều kiện kia rất nhiều lần. Mình muốn lập một Macro tự động hóa các việc kia. Việc ghi Macro thì đơn giản nhưng mình đang mắc ở một chỗ đó là mình muốn Macro tự động lấy ký tự mình đã nhập ở hai ô trên excel để tự động làm thành điều kiện để lọc.
Ai có lòng tốt giúp mình với.
Mình có gửi file cho các bạn dễ hình dung.
 

File đính kèm

Dạ, em mới chập chững học Macro thôi. Em có một file mà nó bao gồm rất nhiều dữ liệu, mà em rất hay sử dụng thao tác lọc theo điều kiện gồm hai điều kiện: Begins with và Contains. Mục đích là lọc ra những dữ liệu phù hợp nhất để nhanh chóng thao tác cũng như xem xét quản lý.

Vấn đề là mình phải thực hiện việc lọc theo hai điều kiện kia rất nhiều lần. Mình muốn lập một Macro tự động hóa các việc kia. Việc ghi Macro thì đơn giản nhưng mình đang mắc ở một chỗ đó là mình muốn Macro tự động lấy ký tự mình đã nhập ở hai ô trên excel để tự động làm thành điều kiện để lọc.
Ai có lòng tốt giúp mình với.
Mình có gửi file cho các bạn dễ hình dung.

Đơn giản mà bạn, ghi macro rùi đưa vào sự kiên sheet_change là đc
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$3" Then
        ActiveSheet.Range("$B$4:$C$201").AutoFilter Field:=1, Criteria1:="=" & Cells(3, 2) & "*", _
            Operator:=xlAnd
    End If
    If Target.Address = "$C$3" Then
        ActiveSheet.Range("$B$4:$C$201").AutoFilter Field:=2, Criteria1:="=*" & Cells(3, 3) & "*", _
            Operator:=xlAnd
    End If
End Sub
 
Upvote 0
bạn nên có 1 sheet là dữ liệu và 1 sheet là trích lọc, cái này sử dụng AdvanceFilter, là ok, muốn tự động hơn nữa thì ghi macro rồi gọi lại mỗi khi đk thay đổi
 
Upvote 0
bạn nên có 1 sheet là dữ liệu và 1 sheet là trích lọc, cái này sử dụng Advanced Filter, là ok, muốn tự động hơn nữa thì ghi macro rồi gọi lại mỗi khi đk thay đổi
 
Upvote 0
Đơn giản mà bạn, ghi macro rùi đưa vào sự kiên sheet_change là đc
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$3" Then
        ActiveSheet.Range("$B$4:$C$201").AutoFilter Field:=1, Criteria1:="=" & Cells(3, 2) & "*", _
            Operator:=xlAnd
    End If
    If Target.Address = "$C$3" Then
        ActiveSheet.Range("$B$4:$C$201").AutoFilter Field:=2, Criteria1:="=*" & Cells(3, 3) & "*", _
            Operator:=xlAnd
    End If
End Sub

Bạn xem lại mình với code không chạy.
Mình muốn tạo một nút để khi nhập xong ký tự tại hai ô B3 và C3 thì ấn vào macro chạy!

bạn nên có 1 sheet là dữ liệu và 1 sheet là trích lọc, cái này sử dụng AdvanceFilter, là ok, muốn tự động hơn nữa thì ghi macro rồi gọi lại mỗi khi đk thay đổi

Mình muốn lọc như bình thường thôi và xem kết quả ngay trong sheet đó. Vì mình phải lọc liên tục theo điều kiện rất nhiều lần!
 
Lần chỉnh sửa cuối:
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
À đúng rồi cảm ơn bạn Quanluu nhé. Code chạy tốt lắm.
Tại mình hơi gà mờ chút --=0
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom