如何在VBA中使用Vlookup

时间:2019-06-26 09:04:43

标签: excel vba

我正在尝试通过VBA使用vlookup在两个不同的工作簿(A,B)中获取值,并将一些值填充到工作簿A的一列中

对我来说,重要的要求是工作簿B中的搜索范围应该是动态的。

因此,我已经计算出工作簿B中表的行数。

这是我尝试编写的代码,由于Vlookup内部的语法错误而无法编译:

ActiveWorkbook.Sheets("Sheet1").Activate
     Columns("M:M").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("M2").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC[-12],[petest.xlsx]Sheet1!A1:"&lrow2,8,FALSE),RC[-1])"
    Range("M2").Select
    Selection.AutoFill Destination:=Range("M2:M" & lrow)
    Range("M2:M" & lrow).Select

lrow包含第一个工作簿的表的最后一列,而lrow2包含第二个工作簿的表的最后一列(我正在搜索的那个)

1 个答案:

答案 0 :(得分:1)

尝试更改此行:

Data : 2 counter 1
Data : 3 counter 1
Data : 3 counter 2
Data : 4 counter 1
Data : 6 counter 4114

2 3 4 

Data : 2 counter 1
Data : 3 counter 1
Data : 3 counter 2
Data : 4 counter 1
Data : 6 counter 1

2 3 4 6

这会将row的实际值插入公式中

更新

您需要在vlookup公式中添加“ L”,以便它具有A1:L而不只是A1。我已经编辑了上面的代码。请尝试