Цикл VBA с различными критериями

#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 при выполнении некоторого условия.