Loop excel что это
Циклы в VBA Excel предназначены для повторения одного и того же блока операторов. Количество итераций может быть задано явно, зависеть от условия или количества элементов, содержащихся в обрабатываемом объекте.
Цикл For… Next
Цикл For… Next в VBA Excel предназначен для выполнения группы операторов необходимое количество раз, заданное счетчиком — специальной переменной цикла. После выполнения каждой итерации значение счетчика увеличивается или уменьшается на единицу или на число, указанное с помощью оператора Step. Предусмотрен принудительный выход из цикла с помощью оператора Exit For. Перейти к подробному описанию …
Цикл Do While… Loop
Цикл Do While… Loop в VBA Excel предназначен для повторения блока операторов до тех пор, пока выполняется заданное условие (возвращается значение True). Этот цикл позволяет проверять условие как до, так и после выполнения операторов. Предусмотрен принудительный выход из цикла с помощью оператора Exit Do. Перейти к подробному описанию …
Цикл While… Wend
Цикл While… Wend в VBA Excel предназначен для выполнения блока операторов до тех пор, пока выполняется заданное условие (возвращается значение True). Этот цикл позволяет проверять условие только до выполнения операторов. Принудительный выход из цикла с помощью оператора Exit Do не предусмотрен. Перейти к подробному описанию …
Цикл Do Until… Loop
Цикл Do Until… Loop в VBA Excel предназначен для повторения блока операторов пока не выполняется заданное условие (возвращается значение False). Этот цикл позволяет проверять условие как до, так и после выполнения операторов. Предусмотрен принудительный выход из цикла с помощью оператора Exit Do. Перейти к подробному описанию …
Цикл For Each… Next
Цикл For Each… Next в VBA Excel предназначен для выполнения блока операторов по отношению к каждому элементу из группы элементов (диапазон, массив, коллекция). Предусмотрен принудительный выход из цикла с помощью оператора Exit For. Перейти к подробному описанию …
Использование Do. Цикл заявлений для запуска блокировки заявлений неограниченное количество раз. Операторы повторяются до тех пор, пока сохраняется условие True, или пока условие не станет True.
Повторяние заявлений при условии True
Существует два способа использования ключевого слова While для проверки состояния в do. Заявление цикла. Вы можете проверить условие, прежде чем ввести цикл, или вы можете проверить его после того, как цикл работает по крайней мере один раз.
В следующей ChkFirstWhile процедуре перед вводом цикла необходимо проверить условие. Если myNum установлено 9 вместо 20, утверждения внутри цикла никогда не будут запускаться. В процедуре 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 и обратная связь.
Повторяет блок инструкций, пока 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 операторе), цикл всегда выполняется по крайней мере один раз.
Условие обычно является результатом сравнения двух значений, но может быть любым выражением, результатом вычисления которого является логическое значение типа данных ( или False ). Сюда относятся значения других типов данных, например числовые типы, которые были преобразованы в Boolean .
Можно вложить Do циклы, поместив один цикл в другой. Можно также вкладывать различные виды управляющих структур друг в друга. Дополнительные сведения см. в разделе вложенные структуры управления.
Эта Do. Loop структура обеспечивает большую гибкость, чем Do. Loop , так как он позволяет решить, следует ли завершать цикл при condition остановке True или при первом преобразовании True . Он также позволяет тестироваться condition как в начале, так и в конце цикла.
Выйти
Оператор Exit Do может предоставить альтернативный способ выхода из. Exit Do немедленно передает управление оператору, следующему за Loop оператором.
Exit Do часто используется после вычисления некоторого условия, например в If. Then. Else структуре. Может потребоваться выйти из цикла, если обнаруживается условие, которое делает ненужным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение. Одно из Exit Do них — проверка на наличие условия, которое может вызвать Exit Do , то есть цикл, который может выполнять большое или даже бесконечное число раз. Для экранирования цикла можно использовать Exit Do .
В можно включить любое количество Exit Do операторов в Do…Loop любом месте.
При использовании внутри вложенных Do циклов Exit Do передает управление за пределы самого внутреннего цикла и в следующий более высокий уровень вложенности.
Пример 1
В следующем примере операторы в цикле продолжают выполняться до тех пор, пока index переменная не будет больше 10. Until Предложение находится в конце цикла.
Пример 2
В следующем примере вместо Until предложения используется While предложение, которое проверяется в начале цикла, condition а не в конце.
Пример 3
В следующем примере останавливается цикл, condition Если index переменная больше 100. If Однако инструкция в цикле приводит Exit Do к остановке цикла, если переменная индекса больше 10.
Пример 4
В следующем примере считываются все строки в текстовом файле. OpenTextМетод открывает файл и возвращает объект StreamReader , считывающий символы. Do. Loop В условии Peek метод StreamReader определяет наличие дополнительных символов.
Repeats a block of statements while a condition is True or until a condition becomes True.
Syntax
Do [< While | Until > condition ] [ statements ] [ Exit Do ] [ statements ] Loop
Or, you can use this syntax:
Do [ statements ] [ Exit Do ] [ statements ] Loop [< While | Until > condition ]
The Do Loop statement syntax has these parts:
Part | Description |
---|---|
condition | Optional. Numeric expression or string expression that is True or False. If condition is Null, condition is treated as False. |
statements | One or more statements that are repeated while, or until, condition is True. |
Remarks
Any number of Exit Do statements may be placed anywhere in the Do…Loop as an alternate way to exit a Do…Loop. Exit Do is often used after evaluating some condition, for example, If…Then, in which case the Exit Do statement transfers control to the statement immediately following the Loop.
When used within nested Do…Loop statements, Exit Do transfers control to the loop that is one nested level above the loop where Exit Do occurs.
Example
This example shows how Do. Loop statements can be used. The inner Do. Loop statement loops 10 times, asks the user if it should keep going, sets the value of the flag to False when they select No, and exits prematurely by using the Exit Do statement. The outer loop exits immediately upon checking the value of the flag.
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Цикл 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», и под ней, как минимум, одна строка должна быть пустой, точнее, первая ячейка этой строки.
Читайте также: