HỖ TRỢ VIẾT CODE VBA LỌC DỮ LIỆU NHIỀU ĐIỀU KIỆN TRONG BẢNG TÍNH
Hi ACE hội GPE!
Mình có bảng dữ liệu excel đính kèm cần lọc nhiều điều kiện, mà không biết viết code như thế nào để lọc các điều kiện cho chạy được.
Nhờ ACE chỉ giúp.
Xin cảm ơn nhiều!
P/s: File đính kèm
Xem file nhé.
Cách dùng
Các ô màu vàng D3,D4,F3,F4 có thể nhập dữ liệu hoặc để trống
Nếu D3 trống: ngày bắt đầu là ngày nhỏ nhất
Nếu D4 trống: ngày kết thúc là ngày lớn nhất
F3,F4 có thể để trống, nếu không xét.
F4: có thể nhập ký tự đại diện (vd: Nhập "THỊ" thì lọc hết các tên có THỊ)
Code này đặt trong sheet module, bắt sự kiện thay đổi của 4 ô
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&, i&, rng, tmp(), bd As Double, kt As Double, mh, nv
Application.ScreenUpdating = False
If Intersect(Target, Range("D3,D4,F3,F4")) Is Nothing Then Exit Sub
Range("A7:A100000").EntireRow.Hidden = False
bd = Range("D3").Value2: kt = Range("D4").Value2
mh = Range("F3").Value: nv = Range("F4").Value
lr = Cells(Rows.Count, "B").End(xlUp).Row
rng = Range("A7:D" & lr).Value2
ReDim tmp(1 To UBound(rng), 1 To 1)
For i = 1 To UBound(rng)
If rng(i, 2) >= bd And rng(i, 2) <= IIf(kt = 0, 100 ^ 100, kt) And _
rng(i, 3) = IIf(mh = "", rng(i, 3), mh) And UCase(rng(i, 4)) Like IIf(nv = "", "*", "*" & UCase(nv) & "*") Then
tmp(i, 1) = rng(i, 1)
Else: tmp(i, 1) = ""
End If
Next
With Range("XX7")
.Resize(10000, 1).ClearContents
.Resize(UBound(rng), 1).Value = tmp
On Error Resume Next
.Resize(UBound(rng), 1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
.Resize(10000, 1).ClearContents
End With
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn rất nhiều! code chạy nhanh mượt lắm.
www.giaiphapexcel.com/diendan/threads/h%E1%BB%96-tr%E1%BB%A2-vi%E1%BA%BEt-code-vba-l%E1%BB%8Cc-d%E1%BB%AE-li%E1%BB%86u-nhi%E1%BB%80u-%C4%90i%E1%BB%80u-ki%E1%BB%86n-trong-b%E1%BA%A2ng-t%C3%8Dnh.163984/
Ứng dụng AI và Chat GPT trong Quản trị nhân sự
Học xong khóa này, học viên có thể: Hiểu đúng bản chất AI, các nhóm AI phổ biến và cách AI “hoạt động” ở...
Xem khóa học
Bình luận