Лекции VBA под Excel
  • Регистрация
1 1 1 1 1 1 1 1 1 1 Рейтинг 4.00 (2 Голоса)

Циклы VBA.

Цикл – это алгоритмическая структура, при помощи которой реализуется многократное повторение блока операторов.

Оператор цикла со счетчиком (For … Next)

Инструкция For … Next позволяет циклически выполнить набор инструкций (операторов) заданное количество раз. Синтаксис инструкции:

For счетчик = нач_значение To конеч_значение [Step шаг]

[инструкции]

[Exit For]

[инструкции]

Next [счетчик]

Параметр счетчик – это числовая переменная, автоматически изменяющая свое значение на величину шаг после каждого повтора цикла. Цикл выполняется до тех пор, пока счетчик £ конеч_значение при положительном значении параметра шаг или до тех пор, пока счетчик ³ конеч_значение при отрицательном значении параметра шаг. Таким образом, цикл не выполнится ни разу, если при положительном значении шага нач_значение больше, чем конеч_значение. Если параметр Step шаг опущен, то по умолчанию приращение переменной-счетчика полагается равным 1.

Оператор Exit For завершает выполнение цикла "досрочно" и передает управление оператору, следующему за оператором цикла. Exit For обычно располагают в условном операторе, например:

If условие Then Exit For

Примечание. По синтаксису оператора For параметр счетчик – арифметическая переменная любого типа, все же лучше использовать целый тип переменной, т. к. дробная часть значения переменной вещественного типа обычно имеет погрешность. Это связано со способом хранения чисел в компьютере.

Пример 1

Найти сумму первых 10 натуральных чисел: S = 1 + 2 + 3 + … + 10. Фрагмент программы:

Dim I as Integer, S as Integer

S = 0 'Обнуляем значение переменной S

For i = 1 to 10 'Начало цикла. Задаем начальное и конечное значения
'параметра цикла. Шаг цикла по умолчанию равен 1.

S = S + i 'Оператор присваивания выполняется при каждом
' выполнении цикла, в данном примере 10 раз

Next I 'Конец цикла. Значение параметра цикла увеличивается на шаг.

В этом фрагменте программы цикл выполнится ровно 10 раз.

Пример 2

Вывести в 1-й столбец рабочего листа (начиная со2-й строки) значения х в диапазоне от 0 до 3,2 с шагом 0,4.

Public Sub Табуляция()

Dim x As Single, i As Integer

i = 2

For x = 0 To 3.2 Step 0.4

Cells(i, 1) = x

i = i + 1

Next x

End Sub

Хотя длина интервала [0; 3.2] точно делится на шаг 0.4, результат на рабочем листе имеет вид:

Что же предпринять?

1.  Можно слегка увеличить конечное значение, в данном примере вместо 3.2 написать 3.201.

2.  Определить число повторений чикла и написать цикл по счетчику целого типа.

В данном случае программа примет вид:

Public Sub Табуляция1()

Dim x As Single, i As Integer, n As Integer

n = CInt((3.2 - 0) / 0.4)

For i = 0 To n Step 1

x = 0 + i * 0.4

Cells(i + 2, 1) = x

Next i

End Sub

Оператор цикла For Each … Next

Цикл For Each … Next позволяет повторить выполнение группы инструкций для каждого элемента массива или семейства. Данная инструкция имеет следующий синтаксис:

For Each элемент In группа

[инструкции]

[Exit For]

[инструкции]

Next [элемент]

Параметр элемент – это переменная, которая представляет элемент семейства или массива. Аргумент группа – имя массива или семейства. Инструкции выполняются только один раз для каждого члена группы. Использование инструкции удобно потому, что не требуется заранее знать, сколько элементов содержится в массиве или семействе. Переменная элемент должна иметь тип Variant.

Пример 1

Найти среднее арифметическое значение всех элементов выделенного диапазона

Public Function Среднее(Диапазон As Range) As Double

Dim Элемент As Variant

Dim Сумма As Double

Dim Количество As Integer

Сумма = 0

Количество = 0

For Each Элемент In Диапазон

Сумма = Сумма + Элемент

Количество = Количество + 1

Next Элемент

Среднее = Сумма / Количество

End Function

Применение. В выделенном диапазоне смежных ячеек должны находиться числа. Числа в пустых ячейках считаются равными 0. Текст в ячейке приведет к ошибке.

Перечисленные выше операторы If … End If, Select … Case, For … Next, For Each … Next представляют собой группу управляющих инструкций, которые изменяют порядок выполнения команд. Управляющие инструкции могут быть вложены друг в друга в любой последовательности.

 

Циклы VBA - 4.0 out of 5 based on 2 votes

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство