- VBA Excel. Циклы
- Цикл For… Next
- Цикл Do While… Loop
- Цикл While… Wend
- Цикл Do Until… Loop
- Цикл For Each… Next
- For. Next statement
- Syntax
- Remarks
- Example
- See also
- Support and feedback
- Циклическое прохождение кода
- Использование условных операторов для принятия решений
- Выбор условной инструкции для использования
- Использование циклов для повторения кода
- Выбор цикла для использования
- Выполнение нескольких инструкций для одного объекта
- См. также
- Поддержка и обратная связь
- Обратная связь
- Циклические структуры (Visual Basic)
- Циклы while
- Циклы выполнения
- Циклы for
- Циклы For Each
- См. также раздел
VBA 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. Перейти к подробному описанию …
For. Next statement
Repeats a group of statements a specified number of times.
Syntax
For counter = start To end [ Step step ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]
The For…Next statement syntax has these parts:
Part | Description |
---|---|
counter | Required. Numeric variable used as a loop counter. The variable can’t be a Boolean or an array element. |
start | Required. Initial value of counter. |
end | Required. Final value of counter. |
step | Optional. Amount counter is changed each time through the loop. If not specified, step defaults to one. |
statements | Optional. One or more statements between For and Next that are executed the specified number of times. |
Remarks
The step argument can be either positive or negative. The value of the step argument determines loop processing as follows.
Value | Loop executes if |
---|---|
Positive or 0 | counter end |
Negative | counter >= end |
After all statements in the loop have executed, step is added to counter. At this point, either the statements in the loop execute again (based on the same test that caused the loop to execute initially), or the loop is exited and execution continues with the statement following the Next statement.
Changing the value of counter while inside a loop can make it more difficult to read and debug your code.
Any number of Exit For statements may be placed anywhere in the loop as an alternate way to exit. Exit For is often used after evaluating some condition, for example If. Then, and transfers control to the statement immediately following Next.
You can nest For. Next loops by placing one For. Next loop within another. Give each loop a unique variable name as its counter. The following construction is correct:
For I = 1 To 10 For J = 1 To 10 For K = 1 To 10 . Next K Next J Next I
If you omit counter in a Next statement, execution continues as if counter is included. If a Next statement is encountered before its corresponding For statement, an error occurs.
Example
This example uses the For. Next statement to create a string that contains 10 instances of the numbers 0 through 9, each string separated from the other by a single space. The outer loop uses a loop counter variable that is decremented each time through the loop.
Dim Words, Chars, MyString For Words = 10 To 1 Step -1 ' Set up 10 repetitions. For Chars = 0 To 9 ' Set up 10 repetitions. MyString = MyString & Chars ' Append number to string. Next Chars ' Increment counter MyString = MyString & " " ' Append a space. Next Words
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.
Циклическое прохождение кода
С помощью условных операторов и операторов циклов (также называемых структурами управления) можно написать код Visual Basic, который принимает решения и повторяет действия. Другая полезная структура управления, инструкция With , позволяет выполнять ряд инструкций без необходимости повторной квалификации объекта.
Использование условных операторов для принятия решений
Условные операторы оценивают, истинно ли условие (True или False), а затем, в зависимости от результата, указывают один или несколько операторов для выполнения. Обычно условие представляет собой выражение, использующее оператор сравнения для сравнения двух значений или переменных.
Выбор условной инструкции для использования
- If. Then. Else: использует ветвление кода, когда условие принимает значение True или False
- Select Case: осуществляет выбор ветви из набора условий
Использование циклов для повторения кода
Построение циклов дает возможность повторно выполнять набор операторов. Некоторые циклы повторяют выполнение операторов, пока условие не примет значение False, другие — пока условие не примет значение True. Существуют также циклы, которые повторяют выполнение операторов определенное количество раз или для каждого объекта коллекции.
Выбор цикла для использования
- Do. Loop: использует цикл, пока условие не примет значение True
- For. Next: использует счетчик для выполнения операторов определенное количество раз
- For Each. Next: повторяет выполнение набора операторов для каждого объекта коллекции
Выполнение нескольких инструкций для одного объекта
В Visual Basic, как правило, необходимо указать объект перед выполнением одного из его методов или изменением одного из его свойств. Используйте инструкцию With , чтобы указать объект один раз для целого ряда инструкций.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Циклические структуры (Visual Basic)
Структуры цикла Visual Basic позволяют выполнять одну или несколько строк кода повторно. Операторы можно повторять в структуре цикла, пока условие не равно True , пока условие не равно False , указанное количество раз или один раз для каждого элемента в коллекции.
На следующем рисунке показана структура цикла, которая выполняет набор инструкций до тех пор, пока условие не будет выполняться:
Циклы while
Конструкция While . End While выполняет набор инструкций, если условие, указанное в операторе While , равно True . Дополнительные сведения см. в разделе While. Оператор End While.
Циклы выполнения
Конструкция Do . Loop позволяет протестировать условие как в начале, так и в конце структуры цикла. Можно также указать, следует ли повторять цикл, пока условие остается True , или пока оно не станет True . Дополнительные сведения см. в разделе Do. Оператор Loop.
Циклы for
Конструкция For . Next выполняет цикл заданное количество раз. Он использует переменную управления циклом, также называемую счетчиком, для отслеживания повторений. Вы указываете начальную и конечную значения для этого счетчика и при необходимости можете указать величину, на которую он увеличивается от одного повторения к другому. Дополнительные сведения см. в разделе For. Следующий оператор.
Циклы For Each
Конструкция For Each . Next выполняет набор инструкций один раз для каждого элемента в коллекции. Вы указываете переменную управления циклом, но не нужно определять начальные или конечные значения для нее. Дополнительные сведения см. в разделе For Each. Следующий оператор.