Ещё один способ организовать цикл – использование конструкция цикла 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 заканчивается.
Содержание Предыдущая << • >> Cледующая Автор:Muha