Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在excel中为每个循环更新一个范围_Vba_Excel - Fatal编程技术网

Vba 在excel中为每个循环更新一个范围

Vba 在excel中为每个循环更新一个范围,vba,excel,Vba,Excel,我试图编写一个搜索子函数,搜索一个区域中的单元格,然后给定某个参数在第二个区域中查找匹配项,有多个相同的值,因此在本例中,我希望返回第二个区域中的下一个值。我在想,我可以为每个循环设置一个值,每当在第一个范围内有一个值是相同的,下次它在第二个范围内循环时,它被调整以排除我从中返回的第一个值,但是,如果它是第一个范围中的新值,那么它将再次搜索第二个范围中的所有值,但我似乎无法使其工作(这给了我一个错误,第一个if语句的类型不匹配) 它怎么不起作用?是否未显示值?它表示第一个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