VBA cho Advance Filter khi điều kiện thay đổi (1 người xem)

Liên hệ QC

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

oanhngo511

Thành viên mới
Tham gia
23/6/13
Bài viết
21
Được thích
2
Các bạn giúp mình kiểm tra xem đoạn code mình viết VBA cho Sheet 1 ( nằm ngay sheet đầu tiên) cho việc trích lọc từ sheet CSDL
trong Sheet 1, mình đã tạo Macro có tên là "trichloctknoco" để thực hiện việc trích lọc lấy TK nợ, TK có ( điều kiện là Số chứng từ). Và mình muốn khi mình click Combo Box, điều kiện sẽ thay đổi và việc trích lọc cũng tự động thay đổi theo.
Mình đã viết đoạn code và cho chạy thử nhưng ko đc, nhờ các bạn kiểm tra giùm mình
Cám ơn nhiều
 

File đính kèm

Các bạn giúp mình kiểm tra xem đoạn code mình viết VBA cho Sheet 1 ( nằm ngay sheet đầu tiên) cho việc trích lọc từ sheet CSDL
trong Sheet 1, mình đã tạo Macro có tên là "trichloctknoco" để thực hiện việc trích lọc lấy TK nợ, TK có ( điều kiện là Số chứng từ). Và mình muốn khi mình click Combo Box, điều kiện sẽ thay đổi và việc trích lọc cũng tự động thay đổi theo.
Mình đã viết đoạn code và cho chạy thử nhưng ko đc, nhờ các bạn kiểm tra giùm mình
Cám ơn nhiều
Bỏ End If trong sự kiện Selection_Change. Nếu If < Đk > Then < Kết quả > thì không cần End If.
Tham khảo, code Sheets("Sheet1"):
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("O7").Address Then
Sheet8.Range("A4:S27").AdvancedFilter 2, [O6:O7], [P6:Q12]
End If
End Sub
[/gpecode]
Bạn nên dùng Data Validation tại ô O7 thay cho SpinButton,.
 
Lần chỉnh sửa cuối:
Upvote 0
Bỏ End If trong sự kiện Selection_Change. Nếu If < Đk > Then < Kết quả > thì không cần End If.
Tham khảo, code Sheets("Sheet1"):
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("O7").Address Then
Sheet8.Range("A4:S27").AdvancedFilter 2, [O6:O7], [P6:Q12]
End If
End Sub
[/gpecode]
Bạn nên dùng Data Validation tại ô O7 thay cho SpinButton,.

hehe, bác giải thích còn chưa rõ
nếu dùng If then mà chỉ cho 1 kết quả thì ko cần End If, nếu 2 kết quả trở lên thì phải dùng dấu : để kết nối giữa các kết quả, còn ko sẽ gặp lỗi,

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then MsgBox ("1"): MsgBox ("2") 'OK
    If Target.Address = "$A$1" Then MsgBox ("3") 'OK
End Sub
Private Sub Worksheet_SelectionChange_[COLOR=#ff0000]ERROR[/COLOR](ByVal Target As Range)
    If Target.Address = "$A$1" Then
        MsgBox ("abc")
        MsgBox ("cde")
    'End If
End Sub
'còn code WS_change có 1 đoạn ngắn mà bác viết tắt vậy, e rằng bạn kia sẽ còn thắc mắc.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("O7").Address Then
        'Sheet8.Range("A4:S27").AdvancedFilter 2, [O6:O7], [P6:Q12]
        Sheet8.Range("A4:S27").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("O6:O7"), _
        CopyToRange:=Range("P6:Q12"), _
        Unique:=False
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom