Loop excel что это
Вы можете использовать Do. Цикл заявлений для запуска блокировки заявлений неограниченное количество раз. Операторы повторяются до тех пор, пока сохраняется условие True, или пока условие не станет True.
Повторяние заявлений при условии True
Существует два способа использования ключевого слова While для проверки состояния в do. Заявление цикла. Вы можете проверить условие, прежде чем ввести цикл, или вы можете проверить его после того, как цикл работает по крайней мере один раз.
В следующей процедуре перед вводом цикла необходимо проверить ChkFirstWhile условие. Если установлено 9 вместо 20, утверждения внутри цикла никогда myNum не будут запускаться. В процедуре утверждения внутри цикла запускают только один раз, прежде чем ChkLastWhile условие станет false.
Повторяние заявлений до тех пор, пока условие не станет true
Существует два способа использования ключевого слова Until для проверки условия в операторе Do. Loop. Вы можете проверить условие перед вводом цикла (как показано в процедуре), или проверить его после запуска цикла хотя бы один раз (как показано в ChkFirstUntil ChkLastUntil процедуре). Повторение циклов продолжается, пока сохраняется условие False.
Выход из do. Отчет о цикле изнутри цикла
Вы можете выйти из Do. Цикл с помощью заявления Exit Do. Например, чтобы выйти из бесконечного цикла, используйте заявление Exit Do в блоке True для утверждения if. Затем. Другое утверждение или утверждение Select Case. Если условие будет False, цикл запустится обычным образом.
В следующем myNum примере назначено значение, которое создает бесконечный цикл. Оператор If. Then. Else проверяет это условие, а затем выходит из бесконечного цикла.
Чтобы остановить бесконечный цикл, нажмите клавиши ESC или CTRL+BREAK.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Цикл Do While… Loop в VBA Excel предназначен для повторения блока операторов пока выполняется заданное условие (возвращается значение True). Синтаксис этого цикла аналогичен синтаксису цикла Do Until… Loop, который повторяется до тех пор, пока условие не выполняется (возвращается значение False).
Синтаксис цикла Do While… Loop
Синтаксис цикла Do While… Loop существует в двух вариантах, определяющих, когда проверяется условие.
Условие проверяется до выполнения операторов:
Условие проверяется после выполнения операторов:
В квадратных скобках указаны необязательные атрибуты цикла Do While… Loop.
Компоненты цикла Do While… Loop
Компонент | Описание |
---|---|
condition | Обязательный атрибут. Условие выполнения цикла. Выражение, возвращающее значение типа Boolean. |
statements | Необязательный* атрибут. Операторы вашего кода. |
Exit Do | Необязательный атрибут. Оператор выхода** из цикла до его окончания. |
*Если не использовать в цикле свой код, смысл применения цикла теряется.
**Очень полезный оператор для цикла Do While… Loop, так как при некоторых обстоятельствах он может стать бесконечным. Если такой риск существует, следует предусмотреть возможность выхода из бесконечного цикла VBA с помощью оператора Exit Do.
Примеры циклов Do While… Loop
Простейшие циклы
Цикл Do While… Loop с условием до исполняемых операторов:
Цикл Do While… Loop с условием после исполняемых операторов:
В обоих случаях окно MsgBox выведет число 10. Когда значение переменной a будет равно 10, проверяемое условие выдаст значение False, и цикл будет остановлен.
Проход по строкам листа
У двух белок дупла расположены напротив друг друга. В каждом дупле по 100 шишек. В свободное время они бросают шишки в дупло напротив, попадают не всегда. Ниже, в таблице, указано количество шишек, брошенных каждой белкой, и сколько их попало в цель.
Дни | Игрок | Брошено | Попало в цель |
---|---|---|---|
1 день | Белка 1 | 15 | 6 |
1 день | Белка 2 | 12 | 7 |
2 день | Белка 1 | 14 | 8 |
2 день | Белка 2 | 16 | 7 |
3 день | Белка 1 | 20 | 9 |
3 день | Белка 2 | 14 | 6 |
4 день | Белка 1 | 26 | 10 |
4 день | Белка 2 | 13 | 5 |
5 день | Белка 1 | 17 | 4 |
5 день | Белка 2 | 21 | 7 |
Исходя из этих данных необходимо узнать, сколько шишек осталось у Белки 1 в дупле. Для этого необходимо вычесть из 100 шишек количество выброшенных Белкой 1 и прибавить шишки, заброшенные в ее дупло Белкой 2. Вычисления начинаем со второй строки (в первой заголовки) и в условии для цикла Do While… Loop указываем «первая ячейка текущей строки не является пустой». Таблица должна начинаться с первой ячейки рабочего листа «A1», и под ней, как минимум, одна строка должна быть пустой, точнее, первая ячейка этой строки.
Цикл Do Until… Loop в VBA Excel предназначен для повторения блока операторов пока не выполняется заданное условие (возвращается значение False). Синтаксис этого цикла аналогичен синтаксису цикла Do While… Loop, который повторяется до тех пор, пока условие выполняется (возвращается значение True).
Синтаксис цикла Do Until… Loop
Синтаксис цикла Do Until… Loop существует в двух вариантах, определяющих, когда проверяется условие.
Условие проверяется до выполнения операторов:
Условие проверяется после выполнения операторов:
В квадратных скобках указаны необязательные атрибуты цикла Do Until… Loop.
Компоненты цикла Do Until… Loop
Компонент | Описание |
---|---|
condition | Обязательный атрибут. Условие выполнения цикла. Выражение, возвращающее значение типа Boolean. |
statements | Необязательный* атрибут. Операторы вашего кода. |
Exit Do | Необязательный атрибут. Оператор выхода** из цикла до его окончания. |
*Если не использовать в цикле свой код VBA, смысл применения цикла теряется.
**Очень полезный оператор для цикла Do Until… Loop, так как при некоторых обстоятельствах он может стать бесконечным. Если такой риск существует, следует предусмотреть возможность выхода из бесконечного цикла с помощью оператора Exit Do.
Примеры циклов Do Until… Loop
Простейшие циклы
Цикл Do Until… Loop с условием до исполняемых операторов:
Цикл Do Until… Loop с условием после исполняемых операторов:
В обоих случаях окно MsgBox выведет число 10. Когда значение переменной a будет равно 10, проверяемое условие выдаст значение True, и цикл будет остановлен.
Проход по строкам листа
У двух белок дупла расположены напротив друг друга. В каждом дупле по 100 шишек. В свободное время они бросают шишки в дупло напротив, попадают не всегда. Ниже, в таблице, указано количество шишек, брошенных каждой белкой, и сколько их попало в цель.
Дни | Игрок | Брошено | Попало в цель |
---|---|---|---|
1 день | Белка 1 | 15 | 6 |
1 день | Белка 2 | 12 | 7 |
2 день | Белка 1 | 14 | 8 |
2 день | Белка 2 | 16 | 7 |
3 день | Белка 1 | 20 | 9 |
3 день | Белка 2 | 14 | 6 |
4 день | Белка 1 | 26 | 10 |
4 день | Белка 2 | 13 | 5 |
5 день | Белка 1 | 17 | 4 |
5 день | Белка 2 | 21 | 7 |
Исходя из этих данных необходимо узнать, сколько шишек осталось у Белки 1 в дупле. Для этого необходимо вычесть из 100 шишек количество выброшенных Белкой 1 и прибавить шишки, заброшенные в ее дупло Белкой 2. Вычисления начинаем со второй строки (в первой заголовки) и в условии для цикла Do Until… Loop указываем «первая ячейка текущей строки является пустой». Таблица должна начинаться с первой ячейки рабочего листа «A1», и под ней, как минимум, одна строка должна быть пустой, точнее, первая ячейка этой строки.
Повторяет блок инструкций Boolean , пока условие находится True в состоянии или до тех пор, пока условие не станет True .
Синтаксис
Компоненты
Термин | Определение |
---|---|
Do | Обязательный. Запускает определение Do цикла. |
While | Является обязательным, если используется параметр Until . Повторите цикл, пока condition не будет False . |
Until | Является обязательным, если используется параметр While . Повторите цикл, пока condition не будет True . |
condition | Необязательный элемент. Выражение Boolean . если condition имеет значение Nothing , Visual Basic обрабатывает его как False . |
statements | Необязательный элемент. Одна или несколько инструкций, повторяемых в, или до, condition имеют True . |
Continue Do | Необязательный элемент. Передает управление следующей итерации Do цикла. |
Exit Do | Необязательный элемент. Передает управление за пределы Do цикла. |
Loop | Обязательный элемент. Завершает определение Do цикла. |
Комментарии
Используйте Do. Loop структуру, если нужно повторить набор инструкций неопределенное число раз, пока не будет удовлетворено условие. Если нужно повторить инструкции заданное число раз, то для. Обычно лучше подходит следующий оператор.
Можно использовать либо While , либо Until , чтобы указать condition , но не оба.
Тест можно выполнять condition только один раз, в начале или в конце цикла. Если проверка выполняется в condition начале цикла (в Do операторе), цикл может не выполняться даже один раз. Если протестировать в конце цикла (в Loop операторе), цикл всегда выполняется по крайней мере один раз.
Условие обычно является результатом сравнения двух значений, но может быть любым выражением, результатом вычисления которого является логическое значение типа данных ( True или False ). Сюда относятся значения других типов данных, например числовые типы, которые были преобразованы в Boolean .
Можно вложить Do циклы, поместив один цикл в другой. Можно также вкладывать различные виды управляющих структур друг в друга. Дополнительные сведения см. в разделе вложенные структуры управления.
Эта Do. Loop структура обеспечивает большую гибкость, чем while. Оператор End While , так как он позволяет решить, следует ли завершать цикл при condition остановке True или при первом преобразовании True . Он также позволяет тестироваться condition как в начале, так и в конце цикла.
Выйти
Оператор Exit Do может предоставить альтернативный способ выхода из Do…Loop . Exit Do немедленно передает управление оператору, следующему за Loop оператором.
Exit Do часто используется после вычисления некоторого условия, например в If. Then. Else структуре. Может потребоваться выйти из цикла, если обнаруживается условие, которое делает ненужным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение. Одно из них Exit Do — Проверка на наличие условия, которое может вызвать бесконечный цикл, то есть цикл, который может выполнять большое или даже бесконечное число раз. Exit Do Для экранирования цикла можно использовать.
В можно включить любое количество Exit Do операторов в любом месте Do…Loop .
При использовании внутри вложенных Do циклов Exit Do передает управление за пределы самого внутреннего цикла и в следующий более высокий уровень вложенности.
Пример 1
В следующем примере операторы в цикле продолжают выполняться до тех пор, пока index переменная не будет больше 10. Until Предложение находится в конце цикла.
Пример 2
В следующем примере While вместо предложения используется предложение, которое Until condition проверяется в начале цикла, а не в конце.
Пример 3
В следующем примере condition останавливается цикл, если index переменная больше 100. If Однако инструкция в цикле приводит к Exit Do остановке цикла, если переменная индекса больше 10.
Пример 4
В следующем примере считываются все строки в текстовом файле. OpenTextМетод открывает файл и возвращает объект StreamReader , считывающий символы. В Do. Loop условии Peek метод StreamReader определяет наличие дополнительных символов.
Читайте также: