I just wrote a quick procedure to evaluate the formulas you give it. This would work with way more than just vlookup too.

In a module;

Function EvaluateFormula(sString As String) As String

EvaluateFormula = Evaluate(sString)

End Function

In a cell;

=EvaluateFormula("VLOOKUP(3," & C1 & ",2)")
This expression evaluated to "D" (check the table below)

The value of C1 = "LookupRange"

LookupRange is a named range that points to a group of data elsewhere on the sheet. Like this:
0 A
1 B
2 C
3 D
4 E
5 F
6 G
7 H
8 I
9 J