Ещё один цикл For  
Всё об Excel

+В закладки

Обучение Excel

Макросы в Excel

Программирование в Excel

Как в Excel ...?

Об Авторе

Карта сайта

Введение в программирование в Excel

Открываем редактор кода

Как правильно запустить макрос

Немного о программировании

Пока выполняется условие - цикл While

Цикл While. Продолжение

Ещё один цикл For

Как проверить условие - if ... then

Ключевые конструкции языка If, Else, ElseIf, Case

Пишем функцию для макроса



Цикл For

Ещё один способ организовать цикл – использование конструкция цикла For.

Конструкция цикла For является простой как карандаш. Зачем нам For, если есть While? Даже не знаю, по мне так For более простой для восприятия, может, поэтому с ним реже допускают ошибки. Вообще это дело вкуса, но я, когда есть возможность, использую всё-таки For. Хотя раньше привычние был While.

Разберём работу For на живом примере, то есть создадим небольшой макрос, например, по нахождению квадратов чисел от 1 до 10. И выведем результаты в таблицу Excel.

Алгоритм макроса следующий. Заданное количество раз находить квадрат начального числа, записывать результат и увеличить это число.

Я вижу здесь все предпосылки для использования For. С помощью его сделаем это очень коротко.

Создаём основу нашего макроса.

For i = 1 to 10

Next

И For, и to, и Next – ключевые слова. А запись означает следующую команду – повторяй от единицы до десяти с шагом один.

Также приведу и более развёрнутую запись.

For i = 1 to 10 step 1

Next

При это step – шаг может быть и отличным от единицы, и даже отрицательным. Но если слово step отсутствует, то шаг равен единице.

Теперь осталось выполнить расчёт, а сохранять будем в ячейку с координатой (i,1). Тогда при увеличении i автоматически будет нарастать номер строки. Таким образом, мы немного оптимизировали код.

Запишем наши рассуждения, и тогда получим.

Sub program() 'Начало макроса program

For i = 1 To 10 Step 1

Cells(i, 1).Value = i ^ 2 ' В ячейку (i,1) запишем квадрат i

Next

End Sub 'Конец макроса program

Копируем код в редактор VBA и жмём «F5».

В итоге имеем.

Получили то, что хотели.

Аналогом же Exit Do в While для For является Exit For. Если нам надо закончить For при наступлении условия, то можно поместить Exit For в конструкцию if. Например,

For i = 1 To 10 Step 1

If (i = 5) then Exit For

Next.

На этом про For заканчиваю. И пожалуй о циклах всё.

Хотя организовать цикл можно, и используя оператор GoTo - безусловного переходя, и рекурсию, но эти подходы крайне нестабильны, и поэтому мешать их с циклами мы не будем.

© 2012 - 2017 Всё об Excel
Яндекс.Метрика