Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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 Double For循环用于查找单元格值是否在某个范围内_Vba_Excel - Fatal编程技术网

Vba Double For循环用于查找单元格值是否在某个范围内

Vba Double For循环用于查找单元格值是否在某个范围内,vba,excel,Vba,Excel,更糟糕的是,我试着用for循环写一个for循环,通过获取单元格文本,给它分配一个变量,然后在一个范围内运行,看看单元格值是否在范围内,如果找到了,然后将另一个单元格值更改为yes或no(如果找不到),但尽管我自己能够看到范围内的值,但我仍然得到所有的no(否) 整个要点是避免使用vlookup function=ifvlookupvalue,Table,col,false,Yes,No,尽管存在一些值,但它们似乎会跳过一些值 我的代码是 Dim xell As Range For Each x

更糟糕的是,我试着用for循环写一个for循环,通过获取单元格文本,给它分配一个变量,然后在一个范围内运行,看看单元格值是否在范围内,如果找到了,然后将另一个单元格值更改为yes或no(如果找不到),但尽管我自己能够看到范围内的值,但我仍然得到所有的no(否)

整个要点是避免使用vlookup function=ifvlookupvalue,Table,col,false,Yes,No,尽管存在一些值,但它们似乎会跳过一些值

我的代码是

Dim xell As Range

For Each xell In Range("C6:C36")

lookFor = xell.Value

For i = 6 To 36

    If Cells(i, 10).Value = lookFor Then
        Cells(i, 7).Value = "Yes"
        Else
        Cells(i, 7).Value = "No"
    End If
Next i

Next xell
在第一个范围内循环的想法是获取单元格文本,将其分配给变量,并在此期间启动一个新循环,以查看整个范围内的单元格值是否在此范围内


它会执行,但返回时会显示所有“否”。

结果表明,在找到“是”时,我没有退出循环:

需要退出

Dim xell As Range

For Each xell In Range("C6:C36")

lookFor = xell.Value

For i = 6 To 36

    If Cells(i, 10).Value = lookFor Then
        Cells(i, 7).Value = "Yes"
        Exit For <-------- was missing
        Else
        Cells(i, 7).Value = "No"
    End If
Next i

Next xell

没有解决我当前的问题,即除非经过编辑,否则找不到数据

您每次都会覆盖单元格,因此只能获得范围C6:C36中最后一个xcell的结果,那么更正是什么?好的,现在,您解决了编号覆盖的问题。但您仍然有最后一个循环Xel=C36的覆盖。最后一个循环的结果覆盖了前29个循环的结果。。。但这不是VBA的问题,而是你想做什么的设计问题……这个结果对我来说很有效,为了确保它成功,我在一个vlookup旁边运行了它,它产生了相同的结果,即使是恒定的单元格,除非编辑是相同的,否则也找不到