#vba #loops
#vba #циклы
Вопрос:
У меня есть структура цикла следующим образом:
For n = 1 to 10
If [condition 1] Then
For i = 1 to 10
If [condition 2] Then
[action]
[EXIT THE INNER LOOP AND START OUTER LOOP with n = 2]
Elseif [condition 3] Then
[action 2]
[EXIT FUNCTION]
Elseif [condition 4] Then
[action 3]
[EXIT BOTH LOOPS]
End If
Next i
End If
Next n
Учитывая различные действия, как я должен правильно кодировать?
Я пытался:
For n = 1 to 10: Do
If [condition 1] Then
For i = 1 to 10
If [condition 2] Then
[action]
GoTo NextIteration
Elseif [condition 3] Then
[action 2]
Exit Function
Elseif [condition 4] Then
[action 3]
Exit Do
End If
Next i
End If
NextIteration: Next n
Do while negative: Next n
Я не уверен, как мне следует правильно написать последние две строки.
Буду признателен за любую помощь.
Комментарии:
1. используйте
Exit For
для выхода из внутреннего, а затемIF [Condition 4] Then Exit Loop
непосредственно передNext n
выходом из внешнего цикла при правильных условиях2. Другой вариант — закодировать внутренний цикл как
Do While
цикл. Условие цикла может быть примерно такимi <= 10 And bContinue
. В данном случаеbContinue
это логическая переменная, для которой устанавливается значение false при выполнении некоторого условия.