Робота з циклом for в vba
У цьому уроці буде розглянута робота з циклом For в VBA. Приклад роботи з циклом For, так само буде продемонстрований приклад створення формул в Excel за допомогою макросів.
Цикл For працює за принципом лічильника. For застосовується в тих випадках, коли необхідно повторити деякі дії заздалегідь відоме кількість разів. Наприклад, цикл For часто використовується при читанні масивів.
- "Лічильник" - змінна, яка змінюється на вказаний "крок". Якщо крок не вказаний, то за умовчанням береться одиниця.
- "Початок циклу". "Кінець циклу" - числа або змінні вказують нижню межу лічильника і верхній. Зупинка циклу відбувається тоді, коли "лічильник"> "кінець циклу" (або, якщо цикл зворотний, тобто з кроком -1, то "лічильник" <"конец цикла").
- Exit For - команда примусової зупинки циклу. Застосовується в тих випадках, коли відбулося деяке подія, після якого необхідно зупинити виконання команд в циклі, або для запобігання виникнення помилки.
Розглянемо кілька прикладів використання циклу For. Надалі, з цим циклом будемо зустрічатися досить часто.
приклад 1
Дано два стовпці С і Е заповнені числами:

Код макросу виглядає наступним чином (куди прописувати код Новомосковськ тут):
Sub Цікл_For ()
'Константа яка вказує межа циклу тобто до якого значення циклу бігти
Const n = 21
For i = 2 To n
'Створюємо рядок формулу і зберігаємо її в клітинку
Cells (i, 4) = "= C" CStr (i) "+ E" CStr ((n - i) + 2)
'Продовження коли виконується в циклі
Next i
'Решті код програми
End Sub
Розбираємо написаний код:
- Const n = 21 - опис константи n зі значенням 21, тобто число рядків по якому необхідно пробігтися циклу For;
- For i = 2 To n - i лічильник який буде змінюватися на 1 з кожним проходом циклу. Лічильник починається з 2 і закінчується коли i> n;
- Cells (i, 4) - осередок виділеного аркуша, i номер рядка, 4-номер стовпця в який виводиться результат. Зверніть увагу, наш лічильник i вказує номер рядка листа Excel;
- Next i - оператор закриття циклу і перекладу покажчика до For. Все що знаходиться між For і Next виконується в циклі;
- CStr - функція перетворює число в текст.
Осередку ми присвоюємо формулу створену в такий спосіб "= C" CStr (i) "+ E" CStr ((n - i) + 2). знак - "склеювання" символів, рядків. В результаті у нас вийде формула "= Сn + E ((n - i) + 2)" де n = 21, i - лічильник.
Страшно? Це тільки здається :)
Усе. Після виконання макросу ми отримаємо наступний стовпець (виділено), а в кожному осередку формула:

приклад 2
Тепер розглянемо цикл із зазначеним кроком. Після розрахунку минулого макросу ми отримали три стовпці, тепер нам необхідно з шпальти E відняти D, в стовпець F вивести формули вирахування. Код макросу наступний:
В даному випадку все теж саме, тільки цикл тепер "біжить" немає від 2, а від 21 до 2 з кроком (Step) -1.
Результат виконання отримаємо наступний:

Цикл For. в VBA, є не єдиним циклом. Надалі будуть розглянуті ще пара варіантів циклів, без яких не обійтися при написанні макрокоманд в Excel.