Як використовувати цикли For-Next в Excel 2016 VBA

Найпростішим типом циклу в програмуванні Excel VBA є цикл For-Next. Цикл контролюється змінною лічильника, яка починається з одного значення і зупиняється на іншому. Операції між операторами For і Next є операторами, які повторюються в циклі.

Приклад For-Next

У наступному прикладі використовується цикл For-Next для підсумовування перших 1000 додатних чисел. Змінна Total починається з нуля. Потім відбувається зациклювання. Змінна Cnt є лічильником циклу. Починається як 1 і щоразу збільшується на 1 через цикл. Цикл закінчується, коли Cnt дорівнює 1000.

Цей приклад містить лише один оператор всередині циклу. Цей оператор додає значення Cnt до змінної Total. Коли цикл закінчується, MsgBox відображає суму чисел.

Sub AddNumbers()
  Dim Total як подвійний
  Dim Cnt As Long
  Разом = 0
  Для Cnt = 1 до 1000
    Усього = Всього + Cnt
  Наступний Cnt
  Усього MsgBox
Кінець суб

Оскільки лічильник циклу є звичайною змінною, ви можете написати код, щоб змінити його значення в блоці коду між операторами For і Next. Однак це дуже погана практика.

Приклади For-Next з кроком

Ви можете використовувати значення Step, щоб пропустити деякі значення лічильника в циклі For-Next. Ось попередній приклад, переписаний так, щоб підсумувати лише непарні числа від 1 до 1000:

Sub AddOddNumbers()
  Dim Total як подвійний
  Dim Cnt As Long
  Разом = 0
  Для Cnt = 1 до 1000 Крок 2
    Усього = Всього + Cnt
  Наступний Cnt
  Усього MsgBox
Кінець суб

Цього разу Cnt починається як 1, а потім приймає значення 3, 5, 7 тощо. Значення Step визначає, як збільшується лічильник. Зверніть увагу, що верхнє значення циклу (1000) насправді не використовується, оскільки найвище значення Cnt буде 999.

Ось ще один приклад, у якому використовується значення кроку 3. Ця процедура працює з активним аркушем і застосовує світло-сіре затінення до кожного третього рядка, від рядка 1 до рядка 100.

Sub ShadeEveryThirdRow()
  Dim i As Long
  Для i = 1 до 100 Крок 3
    Рядки(i).Інтер'єр.Колір = RGB(200, 200, 200)
  Далі я
Кінець суб

Перевірте результат запуску цього макросу.

Як використовувати цикли For-Next в Excel 2016 VBA

Використання циклу для застосування затінення фону до рядків.

Приклад For-Next з оператором Exit For

Цикл For-Next також може включати один або кілька операторів Exit For всередині циклу. Коли VBA зустрічає цей оператор, цикл негайно завершується.

Наступний приклад демонструє оператор Exit For. Ця підпрограма є процедурою функції, призначеною для використання у формулі робочого аркуша. Функція приймає один аргумент (змінну з іменем Str) і повертає символи ліворуч від першої цифрової цифри. Наприклад, якщо аргументом є «KBR98Z», функція повертає «KBR».

Функція TextPart(Str)
  Dim i As Long
  TextPart = ““
  Для i = 1 до Len(Str)
    Якщо IsNumeric(Mid(Str, i, 1)) Тоді
      Вийти для
    Інакше
      TextPart = TextPart & Mid(Str, i, 1)
    Кінець Якщо
  Далі я
Кінцева функція

Цикл For-Next починається з 1 і закінчується числом, яке представляє кількість символів у рядку. Код використовує функцію Mid VBA для вилучення одного символу в циклі. Якщо знайдено числовий символ, виконується оператор Exit For, і цикл закінчується передчасно.

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

Вкладений приклад For-Next

Ви можете мати будь-яку кількість операторів у циклі та вкладати цикли For-Next всередині інших циклів For-Next.

У наступному прикладі використовується вкладений цикл For-Next для вставки випадкових чисел у діапазон клітинок із 12 рядків на 5 стовпців. Зверніть увагу, що програма виконує внутрішній цикл (цикл із лічильником рядків) один раз для кожної ітерації зовнішнього циклу (цикл із лічильником Col). Іншими словами, програма виконує оператор Cells(Row, Col) = Rnd 60 разів.

Як використовувати цикли For-Next в Excel 2016 VBA

Ці клітинки були заповнені за допомогою вкладеного циклу For-Next.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Для Col = 1 до 5
    Для рядка = від 1 до 12
      Комірки (рядок, стовпець) = Rnd
    Наступний ряд
  Наступний полковник
Кінець суб

У наступному прикладі використовуються вкладені цикли For-Next для ініціалізації тривимірного масиву зі значенням 100. Ця програма виконує оператор у середині всіх циклів (оператор присвоєння) 1000 разів (10 * 10 * 10), щоразу з іншою комбінацією значень для i, j і k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Для i = 1 до 10
    Для j = 1 до 10
      Для k = 1 до 10
        MyArray(i, j, k) = 100
    Далі к
  Далі j
Далі я
  ' Інші твердження ідуть тут
Кінець суб

Ось останній приклад, який використовує вкладені цикли For-Next зі значенням Step. Ця процедура створює шахову дошку, змінюючи колір фону чергуються клітинок.

Як використовувати цикли For-Next в Excel 2016 VBA

Використання петель для створення шахового малюнка.

Лічильник рядків зациклюється від 1 до 8. Конструкція If-Then визначає, яку вкладену структуру For-Next використовувати. Для рядків з непарними номерами лічильник Col починається з 2. Для рядків з парними номерами лічильник Col починається з 1. Обидва цикли використовують значення кроку 2, тому впливають на альтернативні клітинки. Два додаткових висловлювання роблять клітинки квадратними (як у справжньої шахової дошки).

Sub MakeCheckerboard()
  Dim R як довго, C як довго
  Для R = 1 до 8
    Якщо WorksheetFunction.IsOdd(R) Тоді
     Для C = 2 до 8 Крок 2
       Клітини (R, C). Інтер'єр. Колір = 255
     Далі C
    Інакше
     Для C = 1 до 8 Крок 2
       Клітини (R, C). Інтер'єр. Колір = 255
     Далі C
    Кінець Якщо
  Далі Р
  Рядки (“1:8”). Висота рядка = 35
  Columns(“A:H”).Ширина стовпця = 6,5
Кінець суб

Leave a Comment

Як спілкуватися в чаті в Outlook Web App

Як спілкуватися в чаті в Outlook Web App

Досліджуйте, як ефективно спілкуватися в чаті з колегами в Outlook Web App. Дізнайтеся про покрокову інструкцію та нові можливості для підвищення продуктивності.

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows. Microsoft Word відкриває файли в режимі лише для читання, що робить неможливим їх редагування? Не хвилюйтеся, методи наведено нижче

Як виправити неправильний друк документів Microsoft Word

Як виправити неправильний друк документів Microsoft Word

Як виправити помилки під час друку неправильних документів Microsoft Word Помилки під час друку документів Word зі зміненими шрифтами, безладними абзацами, відсутнім текстом або втраченим вмістом є досить поширеними. Однак не варто

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Якщо ви використовували перо або маркер для малювання на слайдах PowerPoint під час презентації, ви можете зберегти малюнки для наступної презентації або стерти їх, щоб наступного разу, коли ви показуватимете їх, розпочали з чистих слайдів PowerPoint. Дотримуйтесь цих інструкцій, щоб стерти малюнки пером і маркером: Стирання рядків на одній з […]

Вміст бібліотеки стилів у SharePoint 2010

Вміст бібліотеки стилів у SharePoint 2010

Бібліотека стилів містить файли CSS, файли мови розширюваної мови таблиць стилів (XSL) та зображення, які використовуються попередньо визначеними основними сторінками, макетами сторінок та елементами керування в SharePoint 2010. Щоб знайти файли CSS у бібліотеці стилів сайту видавництва: виберіть «Дії сайту»→ «Перегляд». Весь вміст сайту. З’являється вміст сайту. Бібліотека Style знаходиться в […]

Форматуйте числа в тисячах і мільйонах у звітах Excel

Форматуйте числа в тисячах і мільйонах у звітах Excel

Не перевантажуйте аудиторію гігантськими цифрами. У Microsoft Excel ви можете покращити читабельність своїх інформаційних панелей і звітів, відформатувавши числа, щоб вони відображалися в тисячах або мільйонах.

Як ділитися сайтами SharePoint і слідкувати за ними

Як ділитися сайтами SharePoint і слідкувати за ними

Дізнайтеся, як використовувати інструменти соціальних мереж SharePoint, які дозволяють особам і групам спілкуватися, співпрацювати, обмінюватися інформацією та спілкуватися.

Як перетворити дати в юліанські формати в Excel

Як перетворити дати в юліанські формати в Excel

Юліанські дати часто використовуються у виробничих середовищах як мітка часу та швидкий довідник для номера партії. Цей тип кодування дати дозволяє роздрібним продавцям, споживачам та агентам з обслуговування визначити, коли був виготовлений продукт, а отже, і вік продукту. Юліанські дати також використовуються в програмуванні, військовій справі та астрономії. Інший […]

Як створити веб-програму Access

Як створити веб-програму Access

Ви можете створити веб-програму в Access 2016. Так що ж таке веб-програма? Ну, веб означає, що він онлайн, а додаток — це просто скорочення від «додаток». Користувацька веб-програма — це онлайн-додаток для баз даних, доступ до якого здійснюється з хмари за допомогою браузера. Ви створюєте та підтримуєте веб-програму у настільній версії […]

Панель швидкого запуску в SharePoint 2010

Панель швидкого запуску в SharePoint 2010

Більшість сторінок у SharePoint 2010 відображають список посилань навігації на панелі швидкого запуску ліворуч. Панель швидкого запуску відображає посилання на пропонований вміст сайту, наприклад списки, бібліотеки, сайти та сторінки публікації. Панель швидкого запуску містить два дуже важливі посилання: Посилання на весь вміст сайту: […]