Mình muốn cập nhật những dữ liệu không trùng tại sheet DMPP sang 3 sheet NVY, sheet AVP, sheet IV theo điều kiện như sau
Tại sheet DMPP
Nếu Left(B,2)="IV" thì trả về sheet IV
Nếu Left(B,2)="AV" hoặc "VP" thì trả về sheet AVP
Còn lại thì trả về sheet NVY.
Hiện tại code đang trả tất cả dữ liệu về sheet NVY
Tại sheet DMPP
Nếu Left(B,2)="IV" thì trả về sheet IV
Nếu Left(B,2)="AV" hoặc "VP" thì trả về sheet AVP
Còn lại thì trả về sheet NVY.
Hiện tại code đang trả tất cả dữ liệu về sheet NVY
Mã:
Private Sub CommandButton1_Click()
Dim Dic As Object, sArr(), dArr(), I As Long, k As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet2
sArr = .Range(.[B5], .[B5].End(xlDown)).Resize(, 3).Value
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
If Not Dic.exists(Tem) Then
Dic.Add Tem, Empty
End If
Next I
End With
With Sheet3
sArr = .Range(.[B5], .[B5].End(xlDown)).Resize(, 3).Value
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
If Not Dic.exists(Tem) Then
Dic.Add Tem, Empty
End If
Next I
End With
With Sheet4
sArr = .Range(.[B5], .[B5].End(xlDown)).Resize(, 3).Value
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
If Not Dic.exists(Tem) Then
Dic.Add Tem, Empty
End If
Next I
End With
With Sheet5
sArr = .Range(.[B9], .[B9].End(xlDown)).Resize(, 3).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
If Not Dic.exists(Tem) Then
k = k + 1
Dic.Add Tem, Empty
dArr(k, 1) = sArr(I, 1)
dArr(k, 2) = sArr(I, 2)
dArr(k, 3) = sArr(I, 3)
End If
Next I
End With
With Sheet2
If k Then
.[B65536].End(xlUp)(2).Resize(k, 3) = dArr
Else
Exit Sub
End If
End With
End Sub