具有匹配功能的VBA Vlookup

时间:2019-03-07 16:01:37

标签: excel vba

我已经使用VBA代码创建了数据透视表,并将其命名为Pivot1。我要寻找的是设置动态VBA Vlookup代码,因为数据透视表中的行标题可能会不断变化。 我使用了匹配函数公式,将其应用于单元格但无法使用此函数编写VBA代码时,可以得到结果。

=IFERROR(VLOOKUP($D18,Pivot1!$A$4:$D$27,MATCH(E$17,Pivot1!$A$4:$E$4,0),0),0)

请帮助我在此VBA代码中添加此匹配功能-

Range("E18").Activate

ActiveCell.Value = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -1), Sheets("Pivot1").Range("A1:E50"), 2, 0)

ActiveCell.Offset(1).Select

1 个答案:

答案 0 :(得分:2)

如果您坚持使用Application.Match(),尽管Mat's Mug的建议中的GetPivotData似乎更合适,那么您将添加类似于Application.VLookUp()...我建议使用with语句,因此您不必重复输入相同的内容:

With Sheets("Pivot1") 
    ActiveCell.Value = Application.VLookup(ActiveCell.Offset(0, -1).Value, .Range("A4:D27"), Application.Match(ActiveCell.Offset(-1,0).Value, .Range("A4:E4"),0), 0)
End With