我一直无法弄清楚我的剧本有什么问题,因为它似乎并不困难,所以我希望我能在这里找到答案。
我有两张(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
答案 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”作为字符串,它应该作为变量存在。