ok I found a solution for this. Not sure how it works, but there shouldn't be "WorksheetFunction" section in there:
firstValue = Application.VLookup(x, rg, 2, False)
firstValue = Application.VLookup(x, rg, 3, False)
firstValue = Application.VLookup(x, rg, 4, False)
This correctly returns the values in the row (i.e, 20, 21, 22)
Thank you!!
Edit:
Something to take note about: if you use "True" for the last parameter, the range will need to be in alphabetical order for it to work. See Parameter 4: range_lookup at the url for an example