Оператор While... End While (Visual Basic)While...End While Statement (Visual Basic). While vba выход из цикла


vba - Выход из цикла при нажатии клавиши и вызов другой процедуры, назначенной клавише

@Jonathan совершенно прав в том, что идеальным было бы использовать многопоточность для этой задачи, а VBA не имеет такой возможности. Итак, сначала вы можете изучить свою структуру программы, чтобы разработать лучший метод.

Тем не менее, VBA может выполнять многозадачность, поэтому существует обходное решение, если вы должны выполнить эту конкретную задачу. Для этого требуется использование DoEvents которого есть некоторые проблемы, связанные с ним (см. Https://support.microsoft.com/en-us/kb/118468). Вы не сможете вызвать новую процедуру в своем цикле, поэтому ваш Application.OnKey "{RIGHT}", "procRight" нужно будет отменить (сделайте это так: Application.OnKey "{RIGHT}").

Поскольку DoEvents передает управление операционной системе, события приложения все равно будут запущены и могут быть захвачены даже во время работы вашего цикла. То, что вы можете сделать, это установить флаг "Стоп" в одном из ваших объектов рабочего листа, захватить событие Worksheet_SelectionChange и, если выбор является одной ячейкой справа от предыдущей, необходимо нажать правую клавишу (к сожалению, то же самое применимо если вы нажмете мышью одну ячейку вправо и, следовательно, на самом деле не будете правым нажатием клавиши, но мы говорим об обходном пути здесь, где ничего идеального), поэтому вы можете установить флаг "Стоп". Затем вы можете проверить этот флаг на каждой итерации цикла.

Код будет выглядеть примерно так:

В вашем рабочем листе...

Private mRight As Boolean Private mOldSelection As Range Public Property Get Right() As Boolean Right = mRight End Property Public Property Let Right(bool As Boolean) mRight = bool Me.Activate Set mOldSelection = Selection.Cells(Selection.Cells.Count) End Property Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not mOldSelection Is Nothing Then If mOldSelection.Column > 1 Then If Target.Cells(1).Address = OldSelection.Offset(, 1).Address Then mRight = True End If End If End If Set mOldSelection = Target.Cells(Target.Cells.Count) End Sub

И вот пример остановленного цикла в вашем модуле...

Dim i As Long Sheet1.Right = False For i = 1 To 1000000 DoEvents If Sheet1.Right Then MsgBox "Stopped" Exit For End If Next MsgBox "Done"

qaru.site

Оператор Exit (Visual Basic)

Рекомендуем использовать Visual Studio 2017

Эта документация перемещена в архив и не поддерживается.

Visual Studio 2013

Завершает процедуру или блок и передает управление оператору, следующему непосредственно после вызова процедуры или определения блока.

Exit { Do | For | Function | Property | Select | Sub | Try | While } Exit Do

Немедленный выход из цикла Do, в котором находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией Loop. Exit Do можно использовать только внутри цикла Do. При использовании вложенных циклов Do оператор Exit Do закрывает самый внутренний цикл и передает управление следующему уровню вложения.

Exit For

Немедленный выход из цикла For, в котором находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией Next. Exit For можно использовать только внутри цикла For...Next или For Each...Next. При использовании вложенных циклов For оператор Exit For закрывает самый внутренний цикл и передает управление следующему уровню вложения.

Exit Function

Немедленный выход из процедуры Function, в которой находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией, вызвавшей процедуру Function. Exit Function можно использовать только внутри процедуры Function.

Чтобы задать возвращаемое значение, можно присвоить значение имени функции в строке перед оператором Exit Function. Для присвоения возвращаемого значения и завершения функции в одном операторе можно воспользоваться Оператор Return (Visual Basic).

Exit Property

Немедленный выход из процедуры Property, в которой находится этот элемент. Выполнение продолжается с инструкции, которая вызвала процедуру Property, т. е. с инструкции, запрашивающей или задающей значение свойства. Exit Property можно использовать только внутри процедуры Get или Set свойства.

Чтобы задать возвращаемое значение в процедуре Get, можно присвоить значение имени функции в линии до оператора Exit Property. Для присвоения возвращаемого значения и завершения процедуры Get в одном операторе можно воспользоваться оператором Return.

В процедуре Set оператор Exit Property эквивалентен оператору Return.

Exit Select

Немедленный выход из блока Select Case, в котором находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией End Select. Exit Select можно использовать только внутри инструкции Select Case.

Exit Sub

Немедленный выход из процедуры Sub, в которой находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией, вызвавшей процедуру Sub. Exit Sub можно использовать только внутри процедуры Sub.

В процедуре Sub оператор Exit Sub эквивалентен оператору Return.

Exit Try

Немедленный выход из блока Try или Catch, в котором находится этот элемент. Выполнение продолжается с блока Finally, если он имеется; в противном случае — с инструкции, следующей за инструкцией End Try. Exit Try можно использовать только внутри блока Try или Catch, но не внутри блока Finally.

Exit While

Немедленный выход из цикла While, в котором находится этот элемент. Выполнение продолжается с инструкции, следующей за инструкцией End While. Exit While можно использовать только внутри цикла While. При использовании во вложенных циклах While, оператор Exit While передает управление циклу, находящемуся на один уровень выше цикла, в котором находится Exit While.

Не следует путать инструкции Exit и End. Exit не определяет конец инструкции.

В следующем примере условие цикла останавливает цикл, когда переменная index больше 100. Оператор If в цикле, однако, вызывает инструкцию Exit Do , чтобы остановить цикл, когда переменная index больше 10.

Dim index As Integer = 0 Do While index <= 100 If index > 10 Then  Exit Do  End If Debug.Write(index.ToString & " ") index += 1 Loop Debug.WriteLine("") ' Output: 0 1 2 3 4 5 6 7 8 9 10

В следующем примере возвращаемое значение присваивается имени функции myFunction и затем используется оператор Exit Function для возврата из функции.

Function myFunction(ByVal j As Integer) As Double myFunction = 3.87 * j Exit Function  End Function

В следующем примере используется Оператор Return (Visual Basic), чтобы назначить возвращаемое значение и выйти из функции.

Function myFunction(ByVal j As Integer) As Double  Return 3.87 * j End Function

msdn.microsoft.com

Оператор While... End While (Visual Basic)

  • 07/20/2015
  • Время чтения: 6 мин
  • Соавторы

В этой статье

Выполняет последовательность операторов, пока заданное условие является True.Runs a series of statements as long as a given condition is True.

СинтаксисSyntax

While condition [ statements ] [ Continue While ] [ statements ] [ Exit While ] [ statements ] End While

ЧастиParts

ТерминTerm ОпределениеDefinition
condition Обязательно.Required. Boolean Выражение.Boolean expression. Если condition — Nothing, Visual Basic рассматривает его как False.If condition is Nothing, Visual Basic treats it as False.
statements Необязательный.Optional. Один или несколько следующих инструкций While, который запускаться при каждом condition — True.One or more statements following While, which run every time condition is True.
Continue While Необязательный.Optional. Передает управление следующей итерации цикла While блока.Transfers control to the next iteration of the While block.
Exit While Необязательный.Optional. Передает управление из While блока.Transfers control out of the While block.
End While Обязательно.Required. Завершает определение блока While.Terminates the definition of the While block.

ПримечанияRemarks

Используйте While...End While структуры, если вы хотите повторить набор инструкций на неопределенное количество раз, до тех пор, пока условие остается True.Use a While...End While structure when you want to repeat a set of statements an indefinite number of times, as long as a condition remains True. Если требуется больше гибкости, с которой проверки того, что или результат можно проверить его, может потребоваться сделать... Цикл инструкции.If you want more flexibility with where you test the condition or what result you test it for, you might prefer the Do...Loop Statement. Если вы хотите повторить инструкцию set несколько раз, для... Следующий оператор обычно является лучшим выбором.If you want to repeat the statements a set number of times, the For...Next Statement is usually a better choice.

Если condition — True, все из statements выполнения до End While инструкции.If condition is True, all of the statements run until the End While statement is encountered. Затем возвращается на управления While инструкции и condition проверяется заново.Control then returns to the While statement, and condition is again checked. Если condition по-прежнему True, процесс повторяется.If condition is still True, the process is repeated. Если у него есть False, управление передается оператору, следующему End While инструкции.If it’s False, control passes to the statement that follows the End While statement.

While Оператор всегда проверяет условие перед началом цикла.The While statement always checks the condition before it starts the loop. Выполнение цикла продолжается, пока значение условия равно True.Looping continues while the condition remains True. Если condition — False при первом входе цикла, он не запускается даже один раз.If condition is False when you first enter the loop, it doesn’t run even once.

condition Обычно результатом сравнения двух значений, но может быть любое выражение, результатом которого является тип данных Boolean значение (True или False).The condition usually results from a comparison of two values, but it can be any expression that evaluates to a Boolean Data Type value (True or False). Это выражение может включать значение другого типа данных, например числовой тип, который был преобразован в Boolean.This expression can include a value of another data type, such as a numeric type, that has been converted to Boolean.

Можно вложить While циклы, поместив один в другой.You can nest While loops by placing one loop within another. Также можно вложить различные виды структур управления друг в друга.You can also nest different kinds of control structures within one another. Дополнительные сведения см. в разделе вложенные структуры управления.For more information, see Nested Control Structures.

Выход приExit While

Выхода во время инструкции можно предоставить другим способом, чтобы выйти из While цикла.The Exit While statement can provide another way to exit a While loop. Exit While немедленно передает управление оператору, следующему End While инструкции.Exit While immediately transfers control to the statement that follows the End While statement.

Как правило, используется Exit While после вычисления некоторого условия (например, в If...Then...Else структуры).You typically use Exit While after some condition is evaluated (for example, in an If...Then...Else structure). Может потребоваться выйти из цикла при обнаружении условия, которое делает бесполезным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение.You might want to exit a loop if you detect a condition that makes it unnecessary or impossible to continue iterating, such as an erroneous value or a termination request. Можно использовать Exit While при проверке условия, которое может привести к бесконечный цикл, который является цикл, который может запустить слишком большой или возможно, бесконечное число раз.You can use Exit While when you test for a condition that could cause an endless loop, which is a loop that could run an extremely large or even infinite number of times. Затем можно использовать Exit While для выхода из цикла.You can then use Exit While to escape the loop.

Можно установить любое число Exit While инструкций в любом месте в While цикла.You can place any number of Exit While statements anywhere in the While loop.

При использовании внутри вложенной While циклы, Exit While передает управление из самого внутреннего цикла и отправляются верхнего уровня вложенности.When used within nested While loops, Exit While transfers control out of the innermost loop and into the next higher level of nesting.

Continue While Инструкция немедленно передает управление следующей итерации цикла.The Continue While statement immediately transfers control to the next iteration of the loop. Дополнительные сведения см. в разделе оператор Continue.For more information, see Continue Statement.

ПримерExample

В следующем примере инструкции в цикле по-прежнему выполняются, пока index переменной больше 10.In the following example, the statements in the loop continue to run until the index variable is greater than 10.

Dim index As Integer = 0 While index <= 10 Debug.Write(index.ToString & " ") index += 1 End While Debug.WriteLine("") ' Output: 0 1 2 3 4 5 6 7 8 9 10

ПримерExample

Следующий пример иллюстрирует использование Continue While и Exit While инструкции.The following example illustrates the use of the Continue While and Exit While statements.

Dim index As Integer = 0 While index < 100000 index += 1 ' If index is between 5 and 7, continue ' with the next iteration. If index >= 5 And index <= 8 Then Continue While End If ' Display the index. Debug.Write(index.ToString & " ") ' If index is 10, exit the loop. If index = 10 Then Exit While End If End While Debug.WriteLine("") ' Output: 1 2 3 4 9 10

ПримерExample

Следующий пример считывает все строки в текстовом файле.The following example reads all lines in a text file. OpenText Метод открывает файл и возвращает StreamReader , считывает символы.The OpenText method opens the file and returns a StreamReader that reads the characters. В While условие, Peek метод StreamReader определяет, содержит ли файл дополнительных символов.In the While condition, the Peek method of the StreamReader determines whether the file contains additional characters.

Private Sub ShowText(ByVal textFilePath As String) If System.IO.File.Exists(textFilePath) = False Then Debug.WriteLine("File Not Found: " & textFilePath) Else Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath) While sr.Peek() >= 0 Debug.WriteLine(sr.ReadLine()) End While sr.Close() End If End Sub

См. такжеSee Also

Циклические структурыLoop StructuresОператор Do...LoopDo...Loop StatementОператор For...NextFor...Next StatementЛогический тип данныхBoolean Data TypeВложенные структуры управленияNested Control StructuresОператор ExitExit StatementОператор ContinueContinue Statement

docs.microsoft.com

Оператор While... End While (Visual Basic)

  • 08/11/2011
  • Время чтения: 2 мин

В этой статье

Выполняет блок операторов, пока заданное условие True.

While condition [ statements ] [ Exit While ] [ statements ] End While

Части

Термин

Определение

condition

Обязательный. Выражение Boolean. Если condition равно Nothing, Visual Basic обрабатывает его как False.

statements

Необязательный. Одна или несколько инструкций, следующих за While, которые выполняются каждый раз, когда condition равно True.

Exit While

Необязательный. Передача управления за пределы блока While.

End While

Обязательный. Завершает определение блока While.

Заметки

Пока условие остается равным True, для повторения операторов неограниченное число раз используйте структуру While...End While. Для большей гибкости с условием, с которым происходит проверка или результат, для которого вы его проверяете, предпочтительнее использовать Оператор Do...Loop (Visual Basic). Если вы хотите повторить инструкцию заданное количество раз, Оператор For... Next (Visual Basic) обычно является лучшим выбором.

Если condition равно True, все statements работают до тех пор, пока не встретится оператор End While. Затем управление передается оператору While и condition проверяется заново. Если condition по-прежнему равно True, процесс повторяется. Если — False, управление передается оператору, следующему за оператором End While.

Правила

  • Природа условий. Условие обычно является результатом сравнения двух значений, но оно может быть любым выражением, значение которого при вычислении имеет тип Тип данных Boolean (Visual Basic) (True или False). Сюда же относятся значения других типов данных, например, числовых типов, преобразованные в тип Boolean.

  • Проверка условий. Оператор While всегда проверяет условие до выполнения цикла. Выполнение цикла продолжается до тех пор, пока значение условия остается True.

  • Число итераций. Если condition равно False при первом входе в цикл, оно не сработает даже один раз.

  • Вложенные циклы. Циклы While могут вкладываться друг в друга. Также можно вложить друг в друга различные виды управляющих структур. Дополнительные сведения см. в разделе Вложенные структуры управления (Visual Basic).

  • Выход из цикла. Оператор Exit (Visual Basic) немедленно передает управление оператору, следующему за оператором End While. Выход из цикла может потребоваться при обнаружении условия, которое делает бесполезным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение. Любое число операторов Exit While можно разместить в любом месте цикла While. Exit While часто используется после оценки некоторого условия, например в структуре If...Then...Else.

  • Бесконечные циклы. Exit While, в частности, применяется для тестирования условия, которое может вызвать бесконечный цикл, т.е. цикл, повторяемый очень много раз или бесконечно. При обнаружении таких условий для выхода из цикла можно использовать Exit While. Дополнительные сведения см. в разделе Оператор Do...Loop (Visual Basic).

Пример

В этом примере используется структура While...End While для увеличения значения переменных счетчика. Операторы в цикле выполняются, пока условие True.

Dim counter As Integer = 0 While counter < 20 counter += 1 ' Insert code to use current value of counter. End While MsgBox("While loop ran " & CStr(counter) & " times")

См. также

Ссылки

Оператор Do...Loop (Visual Basic)

Оператор For... Next (Visual Basic)

Тип данных Boolean (Visual Basic)

Оператор Exit (Visual Basic)

Основные понятия

Циклические структуры (Visual Basic)

Вложенные структуры управления (Visual Basic)

msdn.microsoft.com

Выйти из цикла while в VBS / VBA

Есть ли способ выхода / взлома while в VBS / VBA?

Следующий код не будет работать так, как предполагалось:

num = 0 while (num < 10) if (status = "Fail") then exit while end if num = num+1 wend

VBScript-х While петли не поддерживают ранний выход. Использовать Do для этого:

num = 0 do while (num < 10) if (status = "Fail") then exit do num = num + 1 loop

что об изменении цикла while в цикле do while

и выйдите с использованием

Exit Do

Невероятно старый вопрос, но с учетом того, что ОП сказал, что он не хочет использовать Do While и что ни одно из других решений действительно не работает ... Вот что-то, что делает в точку  так же, как Exit Loop:

Это никогда не работает, если статус уже находится в «Fail» ...

While (i < 20 And Not bShouldStop) If (Status = "Fail") Then bShouldStop = True Else i = i + 1 ' ' Do Something ' End If Wend

В то время как этот всегда обрабатывает что-то в первую очередь (и увеличивает переменную цикла), прежде чем принимать решение о необходимости повторного цикла цикла или нет.

While (i < 20 And Not bShouldStop) i = i + 1 ' ' Do Something ' If (Status = "Fail") Then bShouldStop = True End If Wend

В конечном счете, если переменная Status изменяется внутри While (и если вы не нуждаетесь i вне времени, это не имеет никакого значения, но просто хотел представить несколько вариантов ...

Хотя Loop является устаревшей структурой, я бы рекомендовал заменить «While loop» на «Do While..loop», и вы сможете использовать предложение Exit.

check = 0 Do while not rs.EOF if rs("reg_code") = rcode then check = 1 Response.Write ("Found") Exit do else rs.MoveNext end if Loop if check = 0 then Response.Write "Not Found" end if}

Используйте Do ... Loop с ключевым словом Until

num=0 Do Until //certain_condition_to_break_loop num=num+1 Loop

Этот цикл будет продолжать выполняться, До  условие становится истинным

В то время как ... Wend - это старый синтаксис и не предоставляет функции для прерывания цикла! Предпочитайте, пока петель

Я знаю, что это старый, как грязь, но он занимает довольно высокое место в google.

Проблема с решением maddy реализована (в ответ на rahul) для поддержки использования While ... Wend loop имеет некоторые недостатки

В приведенном примере

num = 0 While num < 10 If status = "Fail" Then num = 10 End If num = num + 1 Wend

После того, как status = «Fail» num будет фактически равен 11. Цикл не заканчивается в состоянии сбоя, он заканчивается в следующем тесте. Весь код после проверки все еще обрабатывается, а ваш счетчик - это не то, что вы, возможно, ожидали.

Теперь, в зависимости от того, что вы все делаете в своем цикле, это может быть неважно, но опять же, если ваш код выглядел примерно так:

num = 0 While num < 10 If folder = "System32" Then num = 10 End If RecursiveDeleteFunction folder num = num + 1 Wend

С помощью Do While или Do Until позволяет остановить выполнение цикла, используя Exit Do вместо использования обмана с условием цикла, чтобы поддерживать While ... Wend синтаксис. Я бы рекомендовал использовать это вместо этого.

programmerz.ru

Выйти из цикла while в VBS / VBA

Есть ли способ выхода / взлома while в VBS / VBA?

Следующий код не будет работать так, как предполагалось:

num = 0 while (num < 10) if (status = "Fail") then exit while end if num = num+1 wend

VBScript-х While петли не поддерживают ранний выход. Использовать Do для этого:

num = 0 do while (num < 10) if (status = "Fail") then exit do num = num + 1 loop

что об изменении цикла while в цикле do while

и выйдите с использованием

Exit Do

Невероятно старый вопрос, но с учетом того, что ОП сказал, что он не хочет использовать Do While и что ни одно из других решений действительно не работает ... Вот что-то, что делает в точку  так же, как Exit Loop:

Это никогда не работает, если статус уже находится в «Fail» ...

While (i < 20 And Not bShouldStop) If (Status = "Fail") Then bShouldStop = True Else i = i + 1 ' ' Do Something ' End If Wend

В то время как этот всегда обрабатывает что-то в первую очередь (и увеличивает переменную цикла), прежде чем принимать решение о необходимости повторного цикла цикла или нет.

While (i < 20 And Not bShouldStop) i = i + 1 ' ' Do Something ' If (Status = "Fail") Then bShouldStop = True End If Wend

В конечном счете, если переменная Status изменяется внутри While (и если вы не нуждаетесь i вне времени, это не имеет никакого значения, но просто хотел представить несколько вариантов ...

Хотя Loop является устаревшей структурой, я бы рекомендовал заменить «While loop» на «Do While..loop», и вы сможете использовать предложение Exit.

check = 0 Do while not rs.EOF if rs("reg_code") = rcode then check = 1 Response.Write ("Found") Exit do else rs.MoveNext end if Loop if check = 0 then Response.Write "Not Found" end if}

Используйте Do ... Loop с ключевым словом Until

num=0 Do Until //certain_condition_to_break_loop num=num+1 Loop

Этот цикл будет продолжать выполняться, До  условие становится истинным

В то время как ... Wend - это старый синтаксис и не предоставляет функции для прерывания цикла! Предпочитайте, пока петель

Я знаю, что это старый, как грязь, но он занимает довольно высокое место в google.

Проблема с решением maddy реализована (в ответ на rahul) для поддержки использования While ... Wend loop имеет некоторые недостатки

В приведенном примере

num = 0 While num < 10 If status = "Fail" Then num = 10 End If num = num + 1 Wend

После того, как status = «Fail» num будет фактически равен 11. Цикл не заканчивается в состоянии сбоя, он заканчивается в следующем тесте. Весь код после проверки все еще обрабатывается, а ваш счетчик - это не то, что вы, возможно, ожидали.

Теперь, в зависимости от того, что вы все делаете в своем цикле, это может быть неважно, но опять же, если ваш код выглядел примерно так:

num = 0 While num < 10 If folder = "System32" Then num = 10 End If RecursiveDeleteFunction folder num = num + 1 Wend

С помощью Do While или Do Until позволяет остановить выполнение цикла, используя Exit Do вместо использования обмана с условием цикла, чтобы поддерживать While ... Wend синтаксис. Я бы рекомендовал использовать это вместо этого.

programmerz.ru

Выйти из цикла while в VBS/VBA

Есть ли способ выхода/взлома while в VBS/VBA?

Следующий код не будет работать так, как предполагалось:

num = 0 while (num < 10) if (status = "Fail") then exit while end if num = num+1 wend

как изменить цикл while на цикл while while

и выйдите с помощью

Exit Do

Невероятно старый вопрос, но имея в виду, что OP сказал, что он не хочет использовать Do While и что ни одно из других решений действительно не работает... Вот что делает точно то же самое как Exit Loop:

Это никогда не работает, если статус уже находится в "Fail"...

While (i < 20 And Not bShouldStop) If (Status = "Fail") Then bShouldStop = True Else i = i + 1 ' ' Do Something ' End If Wend

В то время как этот один сначала сначала обрабатывает что-то (и увеличивает переменную цикла), прежде чем принимать решение о необходимости повторять цикл или нет.

While (i < 20 And Not bShouldStop) i = i + 1 ' ' Do Something ' If (Status = "Fail") Then bShouldStop = True End If Wend

В конечном счете, если переменная Status изменяется внутри While (и если вам не нужно i за пределами времени, это не имеет никакого значения, но просто хочет представить несколько параметров...

Циклы VBScript While не поддерживают ранний выход. Для этого используйте цикл Do:

num = 0 do while (num < 10) if (status = "Fail") then exit do num = num + 1 loop

Хотя Loop - устаревшая структура, я бы рекомендовал заменить "While loop" на "Do While..loop", и вы сможете использовать предложение Exit.

check = 0 Do while not rs.EOF if rs("reg_code") = rcode then check = 1 Response.Write ("Found") Exit do else rs.MoveNext end if Loop if check = 0 then Response.Write "Not Found" end if}

Я знаю, что это старый, как грязь, но он занимает довольно высокое место в google.

Проблема с решением maddy реализована (в ответ на rahul), чтобы поддерживать использование While... Wend loop имеет некоторые недостатки

В приведенном примере

num = 0 While num < 10 If status = "Fail" Then num = 10 End If num = num + 1 Wend

После того, как status = "Fail" num будет фактически равен 11. Цикл не заканчивается в состоянии сбоя, он заканчивается в следующем тесте. Весь код после проверки все еще обрабатывается, и ваш счетчик не является тем, что вы ожидали от него.

Теперь, в зависимости от того, что вы все делаете в своем цикле, это может быть неважно, но опять же, если ваш код выглядел примерно так:

num = 0 While num < 10 If folder = "System32" Then num = 10 End If RecursiveDeleteFunction folder num = num + 1 Wend

Использование Do While или Do Until позволяет остановить выполнение цикла с помощью Exit Do вместо использования обмана с условием цикла для поддержки синтаксиса While ... Wend. Я бы рекомендовал использовать это вместо этого.

Использовать Do... Loop с ключевым словом Until

num=0 Do Until //certain_condition_to_break_loop num=num+1 Loop

Этот цикл будет продолжать выполняться, До условие становится истинным

Пока... Wend - это старый синтаксис и не предоставляет функции для прерывания цикла! Предпочитайте, чтобы в цикле

qna.one