2017-09-22 109 views
-1

我想要做的是檢查值是否在兩列的值之間,如果值在裏面,那麼在單元格中放一個「1」,如果不是「0」,我艾爾雷試着繼續和下一個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 

`

+1

嗯,你的if語句無法啓動內循環,並最終外面 – twoleggedhorse

+2

使用的[壓頭(http://rubberduckvba.com/indentation)解決您的縮進:這些糾結塊錯誤會跳到你用壓頭。 –

回答

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 
+0

當你放棄退出爲j返回爲1,它再次檢查並將值重新從1到0再次 – Diego333

+0

使用第二個代碼不是第一個。 –

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 
+0

當我去了一個沒有檢查列中的所有值,所以它把0當它必須去1 – Diego333

+0

你能提供一個樣本? –