6.3. Переривання нескінченого циклу.

Іноді логічні помилки в програмі призводять до появи нескінченого циклу. Така програма буде працювати до тих пір, поки певні зовнішні дії не змусять її перерватись (наприклад, вимкнення живлення ПК, конфлікт з середовищам VBA, та ін). Однак користувач може самостійно перервати такий цикл, примусово зупинивши виконання програми Для цього потрібно натиснути комбінацію клавіш Ctrl + Break. Якщо ж така програма запущена не з середовища VBA, а під управлінням самої операційної системи, то єдиний розумний вихід її перервати – за допомогою диспетчера програм операційної системи.

Приклад:

Do While S<100

 S=S+X

 X=X–1

Loop

Якщо початкове значення S менше 100, а початкове значення змінної Х відємне, то такий цикл буде нескінченим, тому що фактично в ньому з кожним кроком зменшує значення змінної S (хоча в оману може ввести операція додавання в тілі циклу).

4. Перебір колекцій.

В мові VBA є ще один тип циклів. Він призначений для перебору колекцій об’єктів. Колекцією називається об’єкт, якій містить інші. Взаємопов’язані об’єкти. Наприклад, колекцією можуть бути комірки деякого діапазону електронної таблиці. Такий цикл доцільно використовувати тоді, коли кількість об’єктів в колекції наперед невідоме. Формат оператора циклу має вигляд:

For Each об’єкт In колекція

 Тіло циклу

Next

де For, Each, In, Next – службові слова.

Приклад.

For Each X In Y

 S = S + S

Next

В цьому прикладі змінна Y задає деякий діапазон комірок електронної таблиці, змінна X – поточну комірку. В циклі здійснюється обчислення суми значень, що знаходяться в заданому діапазоні комірок.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28  Наверх ↑