2015-01-20 3 views
1

Итак, у меня есть этот код, который, если ячейка окажется пустой, будет перемещаться от i=1 до i=2 и, по существу, сбросить переменную j, но я понял, что цикл для переменной i продолжается даже после 10. Мой вопрос: есть ли способ заставить его перейти к следующей переменной i при сбросе переменной j? Я заметил, что для переменной j значение переменной заканчивается, в последней ячейке должно быть ненулевое значение.Double For-Next с записями

For i = 1 to 10 
    For j = 9 To 29 Step 2 
     If wkst.Cells(i, j) = "" Then 
      i=i+1 
      j=9 
     Else 
     End If 
     Dest.Cells(i, j) = wkst.Cells(i, j) - wkst.Cells(i, j - 2) 
    Next i 
Next j 

ответ

1

Вам просто нужно Exit For так:

For i = 1 To 10 
    For j = 9 To 29 Step 2 
     If wkst.Cells(i, j) = "" Then Exit For 
     Dest.Cells(i, j) = wkst.Cells(i, j) - wkst.Cells(i, j - 2) 
    Next j 
Next i 

Приведенный выше код будет выходить из For Next Loop для j, когда встречается пустая ячейка.
Также переменные автоматически увеличиваются в For Next Loop, поэтому вам не нужна эта часть.
Это то, что вы пытаетесь? НТН.

+0

oh ok, поэтому он заканчивается j. и спасибо, я пытался выяснить это – sndrosilva

+0

@slsilv Если это сработает для вас и всех других ответов, полученных вами в предыдущих вопросах, вы можете отметить его как принятое. См. [Как принять ответы в SO?] (Http://stackoverflow.com/help/someone-answers) – L42

+0

Спасибо, я также отвечу на другие вопросы. – sndrosilva

0

[next i] заменить с [next j].

j вложен внутри цикла i, поэтому вы не можете «следующий» j вне его гнездования.

Смежные вопросы