Anh Ba Tê và mọi người cho em hỏi chút được không ạ đối với đoạn Code VBA của anh ở trên là thực hiện lọc danh sách có điều kiện
Điều kiện 1 Lọc các chủ quản lý có mã là 1
Điều kiện 2 là lọc theo địa chỉ "Thôn"
tuy nhiên khi thực hiện code này thì lọc toàn bộ số chủ quản lý hiện có thỏa mãn 2 điều kiện trên.
Giờ em muốn nhờ anh và mọi người giúp em là lọc các chủ quản lý thỏa mãn 2 điều kiện trên và lọc duy nhất một chủ quản lý có trong dữ liệu
VD Thôn Rõng có 3 ông Nguyễn Văn 3 chi lọc lấy 1 ông Nguyễn Văn 3 thôi ạ
Em cảm ơn anh và mọi người!
Thay cái Loc_Thon cũ bằng cái này
[GPECODE=vb]Public Sub Loc_Thon()
Dim Dic As Object, I As Long, K As Long, sArr(), dArr(), DK, Ma As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("DATA")
sArr = .Range(.[A2], .[A65536].End(xlUp)).Resize(, 32).Value2
End With
With Sheets("KETQUA")
DK = UCase(.[F2])
Ma = .[G2].Value2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 4)
For I = 1 To UBound(sArr, 1)
If sArr(I, 32) = Ma And DK <> "" Then
If UCase(sArr(I, 4)) = DK Then
Tem = sArr(I, 2)
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, Empty
dArr(K, 1) = K
dArr(K, 2) = sArr(I, 1)
dArr(K, 3) = Tem
dArr(K, 4) = sArr(I, 32)
End If
End If
End If
Next I
With Sheets("KETQUA")
.[A2

10000].ClearContents
If K Then .[A2].Resize(K, 4).Value2 = dArr
End With
Set Dic = Nothing
End Sub[/GPECODE]
Sao không theo số CMND mà lại theo tên nhỉ, lỡ nhập tên khác nhau chữ Hoa thường, hoặc dấu cách thôi là tèo.
Đừng bảo dự trù hết các tình huống viết sai nhé.
Nếu muốn lấy duy nhất theo số CMND thì sửa các dòng này:
[GPECODE=vb]Tem = sArr(I, 1) '<--------- Theo CMND sửa từ đây
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, Empty
dArr(K, 1) = K
dArr(K, 2) = Tem
dArr(K, 3) = sArr(I, 2) '<----------Đến đây[/GPECODE]