Vlookup + Iberror在VBA错误“1004”

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

我有两张纸(Sheet1和Sheet2),这两张纸都是随时间而变化的列表(Sheet1中的信息每次都在Sheet2中获取)。 我想为Sheet1中的每一行运行vlookup函数,并返回“新”(在第28列)如果条目不存在sheet2中。

代码有问题,因为我一直得到有关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 

你得到1004,因为Sheets("Sheet1").Range("i, 2")是无效的范围分配。

要解决这个问题:

Range("i, 2")应该是Cells(i, 2)

Range需要一个地址参数(例如, Range("A1")Range("B" & i)等), Cells取得 / 索引参数(例如Cells(1,2)等)。

检查循环范围..它必须是string。 你用“我”作为string,它应该在那里作为variables。