VBA中的Vlookup + Iferror错误“1004”

时间:2016-10-11 20:27:14

标签: excel vba vlookup

我一直无法弄清楚我的剧本有什么问题,因为它似乎并不困难,所以我希望我能在这里找到答案。

我有两张(Sheet1和Sheet2),其中两张都是随时间变化的列表(sheet1中的信息每次都在sheet2中显示)。我想为Sheet1中的每一行运行vlookup函数,如果sheet2中不存在该条目,则返回“new”(在第28列)。

代码有问题,因为我总是在iferror& vlookup函数上得到1004错误。

提前致谢,

Sub vlookup_iferror ()
 Dim i As Integer
 Dim finalrow As Integer

 finalrow = Sheets("Sheet1").Range("A100000").End(xlUp).Row

  For i = 2 To finalrow
  Cells(i, 28) = Application.IfError(Application.VLookup(Sheets("Sheet1").Range("i, 2"), Sheets("Sheet2").Range("B:B"), 1, False), "New")
  Next i
End sub

2 个答案:

答案 0 :(得分:3)

您获得1004因​​为Sheets("Sheet1").Range("i, 2")无效范围分配。

修复它:

Range("i, 2")应为Cells(i, 2)

Range采用地址参数(例如,Range("A1")Range("B" & i)等),Cells采用 / 索引参数(例如,Cells(1,2)等)。

答案 1 :(得分:0)

检查循环中的范围..它必须是字符串。如果使用“i”作为字符串,它应该作为变量存在。