Cách nào để "Show All" trong Advanced Filter giống như của AutoFilter

  • Thread starter Thread starter tcntt
  • Ngày gửi Ngày gửi
Liên hệ QC

tcntt

Thành viên mới
Tham gia
5/11/09
Bài viết
1
Được thích
0
Các bro cho mình hỏi: mình đang viết thủ tục để Advanced Filter bằng VBA. Lúc trích lọc theo các điều kiện thì không có vấn đề j, khi muốn Show All hết tất cả các record (nếu như người dùng chọn "Chọn tat ca") mình dùng tiểu xảo này
Mã:
Range("A3:R310").AutoFilter
Range("A3:R310").AutoFilter
bình thường ok nhưng vì mình đang Protect Sheet nên bị văng lỗi. Xin hỏi có cách giải quyết nào khác không? Sau đây là code đầy đủ:
Mã:
Private Sub ComboBox1_Change()
    Sheets("DanhSachGV").Range("J1").Value = ComboBox1.Value
    If Sheets("DanhSachGV").Range("J1").Value = "Chon tat ca" Then
        Range("A3:R310").AutoFilter
        Range("A3:R310").AutoFilter
    Else
        Range("A3:R310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Sheets("DanhSachGV").Range("vungdk"), Unique:=False
    End If
End Sub
 
Lần chỉnh sửa cuối:
Bạn thử đổi lại như thế này xem sao

PHP:
Private Sub ComboBox1_Change()
    
        If ComboBox1.Value <>  "Chon tat ca" Then
                       Sheets("DanhSachGV").Range("J1").Value = ComboBox1.Value
                       Range("A3:R310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                                      Sheets("DanhSachGV").Range("vungdk"), Unique:=False
        End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Private Sub ComboBox1_Change()
    Sheets("DanhSachGV").Range("J1").Value = ComboBox1.Value
    If Sheets("DanhSachGV").Range("J1").Value = "Chon tat ca" Then
        Range("A3:R310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Sheets("DanhSachGV").Range("vungdk").Offset(0, 2), Unique:=False
    Else
        Range("A3:R310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Sheets("DanhSachGV").Range("vungdk"), Unique:=False  
    End If
End Sub

Rút gọn lại:

PHP:
Private Sub ComboBox1_Change()
   With Sheets("DanhSachGV")
       .Range("J1").Value = ComboBox1.Value
       . Range("A3:R310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
       IIf .Range("J1").Value = "Chon tat ca", .Range("U1:V2"), _
       .Range("vungdk")), Unique:=False
    End With
End Sub

Thí dụ vungdk là S1:T2 thì khi muốn show all, lấy vùng điều kiện là U1:V2 với U1:V2 trống trơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom