VBA相当于具有多个" col_index_num" s的VLOOKUP

时间:2015-01-21 18:26:51

标签: excel vba excel-vba syntax vlookup

在要返回多列的vba中编写vlookup的语法是什么?我的代码:

For i = 2 To lastrow
   wsTEMP.Range(Cells(i, 16), Cells(i, 20)) = _
       Application.WorksheetFunction.VLookup( _
           Workbooks("template.xlsm").Worksheets("Qry").Cells(i, 1), _
           Workbooks("template.xlsm").Worksheets("Qry").Range("A:G"), _
           XXXhow do I write this??XXX, _
           0)
Next i

编辑:进一步澄清

如果您使用普通的vlookup执行此操作,它将如下所示:

选择一个范围,让我们说A1:E1,然后

=VLOOKUP(G2,range,{3,4,5,6,7},0)

当你按下Ctrl + Shift + Enter键时,{3,4,5,6,7}会返回多列的结果(它们会进入我之前选择的A1,B1等)做vlookup。如何在VBA中做到这一点?如果我需要提供进一步的说明,请告诉我。抱歉。

1 个答案:

答案 0 :(得分:0)

两种可能的方法。

1)如果您要录制一个宏,它将为您提供Range对象的FormulaArray方法:

Range("I4:M4").FormulaArray = "=VLOOKUP(G2,range,{3,4,5,6,7},0)"

2)或者,您可以使用Application.Evaluate

Range("I6:M6") = Application.Evaluate("VLOOKUP(G2,range,{3,4,5,6,7},0)")