Set d = CreateObject("scripting.dictionary")
A = Sheets(2).Range("a1").CurrentRegion
For i = 2 To UBound(A)
If Not d.exists(A(i, 2)) Then Set d(A(i, 2)) = CreateObject("scripting.dictionary")
If Not d(A(i, 2)).exists(A(i, 1)) Then d(A(i, 2))(A(i, 1)) = A(i, 3)
Next i
Sheets(1).Select
Range("c2:c65536") = ""
A = Range("a1").CurrentRegion
For i = 2 To UBound(A)
If d.exists(A(i, 2)) Then
If d(A(i, 2)).exists(A(i, 1)) Then
A(i, 3) = d(A(i, 2))(A(i, 1))
End If
End If
Next i
Range("a1").Resize(UBound(A), UBound(A, 2)) = A