Excel 带匹配函数的VBA Vlookup

Excel 带匹配函数的VBA Vlookup,excel,vba,Excel,Vba,我使用VBA代码创建了透视表,并将其命名为Pivot1。我所要做的就是设置一个动态VBA Vlookup代码,因为pivot中的行标题可能会不断变化。 我使用了匹配函数公式,当我在单元格上应用该公式时,我能够得到结果,但无法使用该公式编写VBA代码 =IFERROR(VLOOKUP($D18,Pivot1!$A$4:$D$27,MATCH(E$17,Pivot1!$A$4:$E$4,0),0),0) 请帮助我在此VBA代码中添加此匹配函数- Range("E18").Activate Act

我使用VBA代码创建了透视表,并将其命名为Pivot1。我所要做的就是设置一个动态VBA Vlookup代码,因为pivot中的行标题可能会不断变化。 我使用了匹配函数公式,当我在单元格上应用该公式时,我能够得到结果,但无法使用该公式编写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

如果您一直在使用Application.Match(),尽管从Mat的Mug建议中获取PivotData似乎更合适,但您应该将其添加到与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

如果您一直在使用Application.Match(),尽管从Mat的Mug建议中获取PivotData似乎更合适,但您应该将其添加到与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

GETPIVOTDATA
不是更可靠吗?或者,您可以从数据透视的数据源而不是数据透视本身进行查找吗?
GETPIVOTDATA
不是更可靠吗?或者,您可以从数据轴的数据源而不是数据轴本身进行查找吗?当激活宏时,您在单元格E18上,使用D18作为vlookup值,并参考E17作为MatchHa时,可以稍微猜测偏移量!让我想知道我是否应该重新命名我的帐户回到“马特的杯子”=)@MohammedSufiyan精彩!请标记为已回答(答案投票旁边的复选标记),以便关闭此选项!当激活宏时,您似乎在单元E18上,对偏移量进行了一点猜测,该宏使用D18作为vlookup值,并引用E17作为MatchHa!让我想知道我是否应该重新命名我的帐户回到“马特的杯子”=)@MohammedSufiyan精彩!请标记为已回答(答案投票旁边的复选标记),以便关闭此选项!