Hi Binoy,
Typically, what I do is create a named range via code and then just use that in my lookup or index/match formulas. It's easy enough to do, and I find that it makes placing the formulas in the worksheets SOOO much easier, particularly if you need to set anything using RC referencing. (Maybe just me, but there you have it.)
This is untested, but I think it should work:
Dim wbTarget As Workbook
Set wbTarget = Workbooks("TheWorkbookWithTheTable.xls")
' Set the name
ThisWorkbook.Names.Add "tblData", wbTarget.Worksheets(1).Range("A1:G400")
' Put your vlookup here
ActiveCell.FormulaR1C1 = "=vlookup(RC[-1],tblData,false)"
Sometimes I have need to do the above, then paste the values and get rid of the range names as well. To delete the names:
' Delete the name
On Error Resume Next
For Each nm In ThisWorkbook.Names
If nm.Name = "tblData" Then nm.Delete
Next nm
On Error GoTo 0
HTH,