Sub Loc_Trung()
Dim Dic As Object, sArr_1(), sArr_2()
Dim Res(), k As Long, i As Long, ii As Long, tmp As String
Set Dic = CreateObject("scripting.dictionary")
sArr_1 = Range("A2", [A65536].End(3)).Resize(, 2).Value
sArr_2 = Range("D2", [D65536].End(3)).Resize(, 2).Value
ReDim Res(1 To UBound(sArr_2), 1 To 2)
For i = 1 To UBound(sArr_1)
tmp = CStr(sArr_1(i, 2))
Dic(tmp) = Empty
Next
For ii = 1 To UBound(sArr_2)
tmp = CStr(sArr_2(ii, 2))
If Dic.exists(tmp) Then
k = k + 1
Res(k, 1) = sArr_2(ii, 1)
Res(k, 2) = sArr_2(ii, 2)
End If
Next
[G2:H10000].ClearContents
If k Then [G2].Resize(k, 2) = Res Else MsgBox "No Data Found", vbInformation
End Sub