[英]VBA Lookup- lookup range error
我已经尽了所有的选择,所以我只能任由你摆布。 我正在尝试在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
只是几件事。
我将亲自查看数据透视表,并尝试引用数据透视表的数据范围,而不是对其进行引用。 就是我尝试做的方式。 这样,如果枢轴的位置发生变化,您就可以了。 快速查看了对象模型,结果如下:
工作表(“ MV Pivot”)。PivotTables(“名称”).DataBodyRange
尽管您使用公式来查找数据透视表数据列,但实际上可以调用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
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.