To adjust your macro the least, try something on these lines:
For i = iRetCodeMin To iRetCodeMax
s = "iT_Legend" & i
Set sName = UserForm1.Controls(s)
sString = Application.WorksheetFunction.VLookup _
(i, Range("RetCodes_Lookup"), 3, False)
sName.Caption = sString
Next i
If it's only the caption you're changing you can dispense with
creating an object (sName) and the variable 's' thus:
For i = iRetCodeMin To iRetCodeMax
sString = Application.WorksheetFunction.VLookup _
(i, Range("RetCodes_Lookup"), 3, False)
UserForm1.Controls("iT_Legend" & i).Caption = sString
Next i
perhaps even shorter by dispensing with sString:
For i = iRetCodeMin To iRetCodeMax
UserForm1.Controls("iT_Legend" & i).Caption _
= Application.WorksheetFunction.VLookup _
(i, Range("RetCodes_Lookup"), 3, False)
Next i