Vba 在excel中为每个循环更新一个范围
我试图编写一个搜索子函数,搜索一个区域中的单元格,然后给定某个参数在第二个区域中查找匹配项,有多个相同的值,因此在本例中,我希望返回第二个区域中的下一个值。我在想,我可以为每个循环设置一个值,每当在第一个范围内有一个值是相同的,下次它在第二个范围内循环时,它被调整以排除我从中返回的第一个值,但是,如果它是第一个范围中的新值,那么它将再次搜索第二个范围中的所有值,但我似乎无法使其工作(这给了我一个错误,第一个if语句的类型不匹配)Vba 在excel中为每个循环更新一个范围,vba,excel,Vba,Excel,我试图编写一个搜索子函数,搜索一个区域中的单元格,然后给定某个参数在第二个区域中查找匹配项,有多个相同的值,因此在本例中,我希望返回第二个区域中的下一个值。我在想,我可以为每个循环设置一个值,每当在第一个范围内有一个值是相同的,下次它在第二个范围内循环时,它被调整以排除我从中返回的第一个值,但是,如果它是第一个范围中的新值,那么它将再次搜索第二个范围中的所有值,但我似乎无法使其工作(这给了我一个错误,第一个if语句的类型不匹配) 它怎么不起作用?是否未显示值?它表示第一个if语句中存在类型不匹配
它怎么不起作用?是否未显示值?它表示第一个if语句中存在类型不匹配检查此处引用的单元格中是否存在错误(例如,
#N/a
)。因此它实际上是在为第一个单元格填充,但第二个单元格与条件不匹配,因此我认为它永远不会继续。我最初使用双精度循环来遍历第二个范围,但它只是返回与每个循环匹配的最终值。我不知道我可以用什么迭代第二个范围,而不只是每次返回最后一个值
Sub mySearch()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Sheets("Deduped NS Data").Range("E2:E142")
Set rng2 = Sheets("Sheet3").Cells(2, 1)
For Each i In rng1
If i = i.Offset(1) And i = rng2 And i.Offset(, 3) = rng2.Offset(, 8) Then
i.Offset(, 2) = rng2.Offset(, 7)
rng2 = rng2.Offset(1)
ElseIf i = rng2 And i.Offset(, 3) = rng2.Offset(, 8) Then
i.Offset(, 2) = rng2.Offset(, 7)
rng2 = Sheets("Sheet3").Cells(2, 1)
End If
Next i
End Sub