Excel VBA查找-查找范围错误

Excel VBA查找-查找范围错误,excel,vba,vlookup,Excel,Vba,Vlookup,我已经用尽了所有的选择,只能听任你摆布了。我试图在excel中自动生成一个报告,但查找不起作用。其思想是,它在数据透视表上进行查找,该数据透视表每天都刷新,并移动到下一个空的一天,并给出结果。我尝试过录制,查找工作正常,但每天它都会将查找范围移动一列,我无法修复它。我的代码如下,任何帮助都将不胜感激 Range("B36").Select Selection.End(xlToRight).Select ActiveCell.Offset(0, 1).Select D

我已经用尽了所有的选择,只能听任你摆布了。我试图在excel中自动生成一个报告,但查找不起作用。其思想是,它在数据透视表上进行查找,该数据透视表每天都刷新,并移动到下一个空的一天,并给出结果。我尝试过录制,查找工作正常,但每天它都会将查找范围移动一列,我无法修复它。我的代码如下,任何帮助都将不胜感激

   Range("B36").Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(0, 1).Select


  Dim row As Integer
    For i = 36 To 40


Set inRange = Range("B" & i & ":B" & i)
Set LookupRange = Sheets("MV Pivot").Columns("N:R")


MsgBox (inRange)

    ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(" & inRange & "," & LookupRange & ",5,FALSE),0)"
                      ActiveCell.Offset(1, 0).Select
        Next I
谢谢

后勤143只需要几件事

  • 正如FAURILLOU Amandine所提到的,我认为您可以参考inRange As Range(“B”和I)-同意
  • 正如Darren提到的,使用公式-同意
  • 我个人会查看pivot表,并尝试引用pivot的数据范围,而不是引用它。就像我想做的那样。那样的话,如果轴的位置改变了,你就没事了。快速查看对象模型,结果如下:

    工作表(“MV Pivot”)。数据透视表(“名称”)。数据源范围

  • 尽管使用公式查找数据透视列,但实际上可以调用Evaluate函数。如果在单元格中使用公式,如果透视表数据发生更改,它也会更改历史数据,因为它是一个公式。您可以通过简单地对结果进行硬编码来解决这个问题

  • 尽管如此,请尝试一下,看看它是否有效/解决了您的问题

    Sub Test()
    
    Range("B36").Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(0, 1).Select
    
    Dim inRange As Range, LookupRange As Range
    Dim row As Integer, i As Integer
    
    For i = 36 To 40
        Set inRange = Range("B" & i)
        Set LookupRange = Range("$K$36:$P$41")
        MsgBox (inRange)
        ActiveCell.Formula = Evaluate("=IFERROR(VLOOKUP(" & inRange.Address & "," & LookupRange.Address & ",5,FALSE),0)")
        ActiveCell.Offset(1, 0).Select
    Next i
    
    End Sub
    

    希望有帮助。

    您要求vba输入公式vlookup(B36:B36;N1:R104;5;)对吗?您是否尝试仅用B36替换B36:B36,或者在您的情况下使用“B”&i&“…?此外,您是否尝试避免使用select而不是您写入的单元格的坐标?例如B36的单元格(36,2),从而使lastcell=单元格(36,2).End(xltorRight);和lastcell.offset(0,1)?
    ActiveCell.FormulaR1C1
    需要R1C1格式的公式,而不是A1格式的公式。请尝试
    ActiveCell.formula
    。另外-尽管不确定-
    inRange.Address
    LookupRange.Address
    在公式中。所有排序的人,谢谢!命名范围成功了。很好-引用Pivot表。Jon Peltier有一个关于如何引用不同部分的好页面: