Может возникнуть ситуация, когда вам нужно выполнить блок кода несколько раз. В общем случае операторы выполняются последовательно: сначала выполняется первый оператор в функции, затем второй и т. Д.
Содержание:
- for цикл
- Синтаксис
- Диаграмма потока
- пример
- for ... loop
- Синтаксис
- пример
- while..wend loop
- Синтаксис
- Диаграмма потока
- пример
- Цикл do..while
- Синтаксис
- Диаграмма потока
- пример
- Альтернативный синтаксис
- пример
- do..intil loop
- Синтаксис
- Диаграмма потока
- пример
- Альтернативный синтаксис
- Диаграмма потока
- пример
- Записи управления циклом
- Контрольное заявление и описание
- Выход для оператора
- Синтаксис
- Диаграмма потока
- пример
- Exit Do
- Синтаксис
- пример
Языки программирования предоставляют различные структуры управления, которые обеспечивают более сложные пути выполнения.
Оператор цикла позволяет нам выполнять оператор или группу операторов несколько раз. Ниже приведен общий вид оператора цикла в VBA.
VBA предоставляет следующие типы циклов для обработки требований циклирования. Нажмите следующие ссылки, чтобы проверить их детали.
for цикл
Цикл for - это структура управления повторением, которая позволяет разработчику эффективно писать цикл, который необходимо выполнить определенное количество раз.
Синтаксис
Ниже приведен синтаксис цикла for в VBA.
For counter = start To end [Step stepcount] [statement 1] [statement 2] .... [statement n] [Exit For] [statement 11] [statement 22] .... [statement n] Next
Диаграмма потока

Ниже приведен поток управления в режиме Loop -
- Первый шаг выполняется. Этот шаг позволяет инициализировать любые переменные управления контурами и увеличивать переменную счетчика шагов.
- Во-вторых, условие оценивается. Если это правда, выполняется тело цикла. Если оно ложно, тело цикла не выполняется, и поток управления переходит к следующему оператору сразу после цикла For.
- После выполнения цикла цикла For поток управления переходит к следующему оператору. Этот оператор позволяет вам обновлять любые переменные управления циклом. Он обновляется на основе значения счетчика шагов.
- Условие теперь оценивается снова. Если это правда, цикл выполняется, и процесс повторяется (тело цикла, затем увеличивают шаг, а затем снова условие). После того, как условие становится ложным, цикл For заканчивается.
пример
Добавьте кнопку и добавьте следующую функцию.
Private Sub Constant_demo_Click()
Dim a As Integer
a = 10
For i = 0 To a Step 2
MsgBox "The value is i is : " & i
Next
End Sub
Когда приведенный выше код компилируется и выполняется, он производит следующий результат.
The value is i is : 0The value is i is : 2The value is i is : 4The value is i is : 6The value is i is : 8The value is i is : 10Выполняет последовательность операторов несколько раз и сокращает код, управляющий переменной цикла.
for ... loop
Для каждого цикла используется для выполнения оператора или группы операторов для каждого элемента в массиве или коллекции.
Для каждого цикла аналогичен For Loop; однако цикл выполняется для каждого элемента в массиве или группе. Следовательно, счетчик шагов не будет существовать в этом типе цикла. Он в основном используется с массивами или используется в контексте объектов файловой системы, чтобы работать рекурсивно.
Синтаксис
Ниже приведен синтаксис цикла For Each в VBA.
For Each element In Group [statement 1] [statement 2] .... [statement n] [Exit For] [statement 11] [statement 22] Next
пример
Private Sub Constant_demo_Click()
'fruits is an array
fruits = Array("apple", "orange", "cherries")
Dim fruitnames As Variant
'iterating using For each loop.
For Each Item In fruits
fruitnames = fruitnames & Item & Chr(10)
Next
MsgBox fruitnames
End Sub
Когда вышеуказанный код выполняется, он печатает все имена фруктов с одним элементом в каждой строке.
appleorangecherriesЭто выполняется, если в группе есть хотя бы один элемент и повторяется для каждого элемента в группе.
while..wend loop
В цикле While While ... Wend , если условие равно True, все операторы выполняются до тех пор, пока не встретится ключевое слово Wend.
Если условие ложно, цикл завершается, и элемент управления переходит к следующему оператору после ключевого слова Wend .
Синтаксис
Ниже приведен синтаксис цикла While..Wend в VBA.
While condition(s) [statements 1] [statements 2] ... [statements n] Wend
Диаграмма потока

пример
Private Sub Constant_demo_Click()
Dim Counter : Counter = 10
While Counter < 15 ' Test value of Counter.
Counter = Counter + 1 ' Increment Counter.
msgbox "The Current Value of the Counter is : " & Counter
Wend ' While loop exits if Counter Value becomes 15.
End Sub
Когда вышеуказанный код выполняется, он выводит следующее в поле сообщения.
The Current Value of the Counter is : 11The Current Value of the Counter is : 12The Current Value of the Counter is : 13The Current Value of the Counter is : 14The Current Value of the Counter is : 15Это проверяет условие перед выполнением тела цикла.
Цикл do..while
Do ... while цикл используется, когда мы хотим повторить набор операторов, пока условие истинно. Условие может быть проверено в начале цикла или в конце цикла.
Синтаксис
Ниже приведен синтаксис цикла Do ... While в VBA.
Do While condition [statement 1] [statement 2] ... [statement n] [Exit Do] [statement 1] [statement 2] ... [statement n] Loop
Диаграмма потока

пример
В следующем примере используется цикл Do ... while для проверки состояния в начале цикла. Операторы внутри цикла выполняются, только если условие становится True.
Private Sub Constant_demo_Click()
Do While i < 5
i = i + 1
msgbox "The value of i is : " & i
Loop
End Sub
Когда выполняется вышеуказанный код, он печатает следующий вывод в окне сообщения.
The value of i is : 1The value of i is : 2The value of i is : 3The value of i is : 4The value of i is : 5Альтернативный синтаксис
Существует также альтернативный синтаксис для Do ... while loop, который проверяет состояние в конце цикла. Основное различие между этими двумя синтаксисами объясняется в следующем примере.
Do [statement 1] [statement 2] ... [statement n] [Exit Do] [statement 1] [statement 2] ... [statement n] Loop While condition
пример
В следующем примере используется цикл Do ... while для проверки состояния в конце цикла. Заявления внутри цикла выполняются хотя бы один раз, даже если условие False.
Private Sub Constant_demo_Click()
i = 10
Do
i = i + 1
MsgBox "The value of i is : " & i
Loop While i < 3 'Condition is false.Hence loop is executed once.
End Sub
Когда выполняется вышеуказанный код, он печатает следующий вывод в окне сообщения.
The value of i is : 11Операторы do..While будут выполняться до тех пор, пока условие равно True. (Т. Е.) Петля должна повторяться до тех пор, пока условие не будет False.
do..intil loop
Do ... intil цикл не будет использован, когда мы хотим повторить набор операторов, пока условие ложно. Условие может быть проверено в начале цикла или в конце цикла.
Синтаксис
Ниже приведен синтаксис цикла Do..Until в VBA.
Do Until condition [statement 1] [statement 2] ... [statement n] [Exit Do] [statement 1] [statement 2] ... [statement n] Loop
Диаграмма потока

пример
В следующем примере используется Do ... До цикла, чтобы проверить условие в начале цикла. Операторы внутри цикла выполняются только в том случае, если условие ложно. Он выходит из цикла, когда условие становится истинным.
Private Sub Constant_demo_Click()
i = 10
Do Until i>15 'Condition is False.Hence loop will be executed
i = i + 1
msgbox ("The value of i is : " & i)
Loop
End Sub
Когда выполняется вышеуказанный код, он печатает следующий вывод в окне сообщения.
The value of i is : 11The value of i is : 12The value of i is : 13The value of i is : 14The value of i is : 15The value of i is : 16Альтернативный синтаксис
Существует также альтернативный синтаксис Do ... До цикла, который проверяет условие в конце цикла. Основное различие между этими двумя синтаксисами объясняется следующим примером.
Do [statement 1] [statement 2] ... [statement n] [Exit Do] [statement 1] [statement 2] ... [statement n] Loop Until condition
Диаграмма потока

пример
В следующем примере используется Do ... До цикла, чтобы проверить условие в конце цикла. Операторы внутри цикла выполняются хотя бы один раз, даже если условие равно True.
Private Sub Constant_demo_Click()
i = 10
Do
i = i + 1
msgbox "The value of i is : " & i
Loop Until i more15 'Condition is True.Hence loop is executed once.
End Sub
Когда выполняется вышеуказанный код, он печатает следующий вывод в окне сообщения.
The value of i is : 11Операторы do..Until будут выполняться до тех пор, пока условие False. (Т. Е.) Петля должна повторяться до тех пор, пока условие не будет истинным.
Записи управления циклом
Операторы управления циклом изменяют исполнение из своей обычной последовательности. Когда выполнение выходит из области действия, все остальные операторы цикла не выполняются.
Контрольное заявление и описание
Выход для оператора
Выход for используется , когда мы хотим , чтобы выйти из For Loop на основе определенных критериев. Когда Exit For выполняется, управление переходит к следующему оператору сразу после цикла For Loop.
Синтаксис
Ниже приведен синтаксис Exit For Statement в VBA.
Exit For
Диаграмма потока

пример
В следующем примере используется Exit For . Если значение счетчика достигает 4, цикл For Loop завершается, и управление переходит к следующему утверждению сразу после цикла For Loop.
Private Sub Constant_demo_Click()
Dim a As Integer
a = 10
For i = 0 To a Step 2 'i is the counter variable and it is incremented by 2
MsgBox ("The value is i is : " & i)
If i = 4 Then
i = i * 10 'This is executed only if i=4
MsgBox ("The value is i is : " & i)
Exit For 'Exited when i=4
End If
Next
End Sub
Когда вышеуказанный код выполняется, он печатает следующий вывод в окне сообщений.
The value is i is : 0The value is i is : 2The value is i is : 4The value is i is : 40Завершает оператор цикла For и передает выполнение в оператор сразу после цикла
Exit Do
Exit Do Заявление используется , когда мы хотим , чтобы выйти из Do Loops на основе определенных критериев. Он может использоваться как в Do Do ... While, так и Do ... До циклов.
Когда Exit Do выполняется, управление переходит к следующему оператору сразу после Do Loop.
Синтаксис
Ниже приведен синтаксис выражения Exit Do в VBA.
пример
В следующем примере используется Exit Do . Если значение счетчика достигает 10, выходная линия Do завершается, и управление переходит к следующему оператору сразу после цикла For Loop.
Private Sub Constant_demo_Click()
i = 0
Do While i <= 100
If i > 10 Then
Exit Do ' Loop Exits if i>10
End If
MsgBox ("The Value of i is : " & i)
i = i + 2
Loop
End Sub
Когда выполняется вышеуказанный код, он печатает следующий вывод в окне сообщения.
The Value of i is : 0The Value of i is : 2The Value of i is : 4The Value of i is : 6The Value of i is : 8The Value of i is : 10Завершает оператор Do While и передает выполнение в оператор сразу после цикла
С уважением, авторы сайта Компьютерапия