With CreateObject("scripting.dictionary")
.CompareMode = 1
For Each Cl In ws2.Range("E45", ws2.Range("E" & Rows.Count).End(xlUp))
.Item(Cl.Value) = Cl.Offset(, 2).Value
Next Cl
For Each Cl In ws1.Range("A11", ws1.Range("A" & Rows.Count).End(xlUp))
Cl.Offset(, 1).Value = .Item(Cl.Value)
Next Cl
For Each Cl In ws3.Range("E45", ws3.Range("E" & Rows.Count).End(xlUp))
.Item(Cl.Value) = Cl.Offset(, 2).Value
Next Cl
For Each Cl In ws1.Range("A11", ws1.Range("A" & Rows.Count).End(xlUp))
Cl.Offset(, 1).Value = .Item(Cl.Value)
Next Cl
End With