23-10-2017
колонтитул в word 2007, 0000002111

Циклы VBA. Команды организации циклов.

Какие либо действия процедуры повторяющиеся заданное количество раз или пока выполняется или не выполняется некоторое условие называют циклом.

Процесс выполнения все операторов, заключенных в структуру цикла, один раз называется итерацией цикла.

Структуры цикла, всегда выполняющиеся заданное количество раз, называются циклами с фиксированным числом итераций. Другие типы структур цикла повторяются переменное количество раз в зависимости от некоторого набора условий. Такие циклы называются неопределенными циклами.

Блок операторов, находящийся между началом и концом цикла называется "тело цикла".

Самой простой структурой цикла является фиксированный цикл.

Цикл For..Next

Синтаксис

For counter = Start To End [Step StepSize]   Statements Next [counter]

Counter - любая численная переменная VBA Start - любое численное выражение , определяет начальное значение для переменной counter End - численное выражение, определяет конечное значение для переменной counter Statements - один, несколько или ни одного оператора VBA (тело цикла).

По умолчанию VBA увеличивает переменную counter на 1 каждый раз при выполнении операторов в цикле. Можно задать другое значение (SterSize - любое численное выражение), на которое будет изменяться counter.

Ключевое слово Next сообщает VBA о том, что достигнут конец цикла. Необязательная переменная counter после ключевого слова Next должна быть той же самой переменной counter, которая была задана после ключевого слова For в начале структуры цикла.

Ниже представлен листинг простейшего цикла For..Next, который считает сумму цифр от 1 до 10:

А теперь два варианта цикла For..Next с использованием шага цикла отличного от единицы:

Обратите внимание! При уменьшении счетчика цикла For..Next цикл выполняется, пока переменная счетчика больше или равна конечному значению, а когда счетчик цикла увеличивается, цикл выполняется, пока переменная счетчика меньше или равна конечному значению.

Цикл For Each..Next

Цикл For Each..Next не использует счетчик цилка. Циклы For Each..Next выполняются столько раз, сколько имеется элементов в определенной группе, такой как коллекция объектов или массив (которые будут рассматриваться позже). Проще говоря, цикл For Each..Next выполняется один раз для каждого элемента в группе.

Синтаксис

For Each Element In Group   Statements Next [Element]

Element - переменная, используемая для итерации по всем элементам в определенной группе Group - это объект коллекции или массив Statements - один, несколько или ни одного оператора VBA (тело цикла).

Цикл For Each..Next всегда выполняется столько раз, сколько имеется элементов в определенной группе.

В нижеприведенном листинге показана функция SheetExists, использующая цикл For Each..Next для определения того, существует ли определенный лист в рабочей книге Excel:

Циклы в макросах VBA в Excel, конструкции For ... Next и Do ... While

Задание 1:

Напишите макрос ForNextSub(), который бы выводил 10 стандартных окон сообщений с цифрами от 1 до 10. Используйте для этого задания конструкцию For...Next.

Задание 2:

Напишите макрос DoWhileSub(), который бы также выводил 10 стандартных окон сообщений с цифрами от 1 до 10. Используйте для этого задания конструкцию Do...While.

Решение к заданию 1:

Итоговый код макроса ForNextSub() может быть таким:

Public Sub ForNextSub()

    Dim i As Integer

    For i = 1 To 10

        MsgBox i

    Next

End Sub

Решение к заданию 2:

Итоговый код макроса DoWhileSub() может быть таким:

Public Sub ForNextSub2()

    Dim i As Integer

    i = 1

    Do While i <= 10

        MsgBox i

        i = i + 1

    Loop

End Sub

колонтитулы в word 2007, 000000211111

Добавить в Мой Мир  Добавить в ВКонтакте.ру  Добавить в Facebook  Добавить в LiveJournal  Добавить в twitter

колонтитулы в word 2007, 000000211
нумерация страниц в word 2007, 00000021111
Яндекс.Метрика
Копирование возможно при указании прямой индексируемой гиперссылки
п»ї
0000002