从嵌套循环内跳过

时间:2017-09-22 19:05:28

标签: vba

我要做的是检查值是否在两列的值之间,如果值在内,则在单元格中放置“1”,如果不是“0”,我可以尝试使用continue和与下一个j但它给了我一个“下一个没有for”。我知道这有一个简单的解决方案,但需要帮助。感谢

For i = 1 To ll
     For j = 1 To t
   If Cells(j + 1, 12).Value >= Cells(i + 1, 9).Value And Cells(j + 1, 12).Value< Cells(i + 1, 10).Value Then
Cells(j + 1, 13).Value = 1
Next j
  Else
   Cells(j + 1, 13).Value = 0
        Next i
            End If

`

2 个答案:

答案 0 :(得分:3)

您想要Exit For

For i = 1 To ll
    For j = 1 To t
        If Cells(j + 1, 12).Value >= Cells(i + 1, 9).Value And Cells(j + 1, 12).Value < Cells(i + 1, 10).Value Then
            Cells(j + 1, 13).Value = 1
            Exit For
        Else
            Cells(j + 1, 13).Value = 0
        End If
    Next j
Next i

但我觉得你需要翻转循环。否则最后将表示的唯一值是当i = 11

For j = 1 To t
    For i = 1 To 11
        If Cells(j + 1, 12).Value >= Cells(i + 1, 9).Value And Cells(j + 1, 12).Value < Cells(i + 1, 10).Value Then
            Cells(j + 1, 13).Value = 1
            Exit For
        Else
            Cells(j + 1, 13).Value = 0
        End If
    Next i
Next j

答案 1 :(得分:1)

如果你接着使用for循环,你就会嵌套:这是你的代码的问题。

For i = 1 To ll
    For j = 1 To t
        If (Cells(j + 1, 12).Value >= Cells(i + 1, 9).Value And Cells(j + 1, 12).Value< Cells(i + 1, 10).Value) Then 
            Cells(j + 1, 13).Value = 1
        Else
            Cells(j + 1, 13).Value = 0
        End If
    Next j
Next i