Your approach sounds reasonable. I combined the two sample sheets into one file below, and the code applies to the file. If you need it to process faster there are some more things we can do. Test this for now.
Sub checkAndPop()
Dim cel, Rng As Range
Dim sh, lc As Worksheet
Dim i As Long
Dim ArrL()
Application.ScreenUpdating = False
Set sh = Sheets("sheet1")
Set lc = Sheets("ListCodes")
Set Rng = sh.Range("A2:A" & sh.Cells(Rows.Count, 1).End(xlUp).Row)
ArrL = lc.Range("A1:B" & lc.Cells(Rows.Count, 1).End(xlUp).Row)
For Each cel In Rng
For i = LBound(ArrL, 1) To UBound(ArrL, 1)
If cel.Value = ArrL(i, 1) Then
'MsgBox cel.Value & " ," & ArrL(i, 1) & ", " & ArrL(i, 2)
cel.Offset(0, 18).Value = ArrL(i, 2)
End If
Next i
Next cel
Application.ScreenUpdating = True
End Sub
Bookmarks