我正在尝试通过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包含第二个工作簿的表的最后一列(我正在搜索的那个)
答案 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。我已经编辑了上面的代码。请尝试