End Sub

Next i

Next

В роли счетчика количества повторений в цикле может выступать любая переменная числового типа. Приращение может быть как положительным, так и отрицательным числом. Если приращение равно единице, то конструкция Step может быть опущена. Если приращение отрицательно, то начальное значение, естественно, должно быть больше конечного.

Циклы Do...Loop

Циклы Do...Loop используются в тех случаях, когда заранее неизвестно, сколько раз должна выполняться расположенная в теле цикла группа операторов. Такой цикл продолжает работу до тех пор, пока не будет выполнено определенное условие. Существуют 4 типа операторов цикла Do...Loop:

1) Цикл с ключевым словом While продолжает свою работу, пока условие остается истинным, т. е. пока условие выполняется, и задается в двух вариантах, представленных ниже.

Do While <условие> <операторы > Loop Условие проверяется до того, как выполняется группа операторов, образующих тело цикла.
Do <операторы> Loop While <условие> Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз.

2) Цикл с ключевым словом Until продолжает свою работу, пока условие является ложным, т. е. условие не выполняется, и задается в двух вариантах, представленных ниже.

Do Until <условие> <операторы> Loop Условие проверяется до того, как выполняется группа операторов, образующих тело цикла.
Do <операторы> Loop Until <условие> Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз.

Если условие постоянно будет ложно, то программа зациклится. Чтобы этого не произошло, значения переменных, входящих в условие, должны изменяться в теле цикла. Если произошло зацикливание (зависание машины), надо прервать программу нажатием Ctrl + Break и исправить ошибку.

Пример 3. Пусть нужно вычислить значение q по формуле: для z={1; 4; 7,5; 9; 15}и a =3, а также для значений z = 0 (0,5) 5. Ввод исходных данных должен осуществляться из ячеек рабочего листа. Вывод результатов надо организовать в ячейки на рабочем листе Excel.

Составим две процедуры. Первую с использованием оператора цикла For...Next и вторую с использованием оператора цикла Do...Loop. Для решения задачи оформим рабочий лист согласно образцу (рис. 5.2).

Для кнопки «Расчет For ... Next»составим следующую процедуру:

Private Sub CommandButton1_Click()

a = 3

j = 18' j − это номер строки, в которую введено первое значение z

For i = 1 To 5 ‘счетчик количества значений переменной z

z = Worksheets("Лист4").Cells(j, 2)

q = Sqr(z ^ 2 + 8 * a) * Log(z + 0.5)

Worksheets("Лист4").Cells(j, 3) = q

j = j + 1

 

Рис. 5.2. Образец оформления рабочего листа для примера 3

Для кнопки «Расчет Do...Loop» процедура может иметь вид:

Private Sub CommandButton2_Click()

a = 3 : j = 18 : z = 1

Do While z <= 5

q = Sqr(z ^ 2 + 8 * a) * Log(z + 0.5)

Worksheets("Лист4").Cells(j, 8) = q

z = z + 0.5

j = j + 1