Використання макросів microsoft excel для створення циклів - не хвилюйтеся, я зараз все поясню!

Використання макросів циклів

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

Цикл Do ... Loop

Використання макросів microsoft excel для створення циклів - не хвилюйтеся, я зараз все поясню!

У циклі Do ... Loop проводиться підрахунок рядків в діапазоні даних до виявлення порожнього рядка.

Припустимо, ви хочете підрахувати кількість рядків в діапазоні даних, який може бути невеликим, а може - вельми солідним. Для цього слід використовувати цикл Do ... Loop. Він виконує задану дію стільки раз, скільки необхідно. При цьому підраховується число всіх рядків, знайдених в діапазоні. Або припустимо, що потрібно виконати одну дію в двох діапазонах даних, що містять різну кількість рядків. І в цьому випадку буде корисний цикл Do ... Loop. Він виконається стільки раз, скільки необхідно для кожного з діапазонів. Як цикл визначить, скільки саме раз слід повторити дію? З заданих вами умов. Повтор припиниться, як тільки виявиться певний фрагмент даних, наприклад порожній рядок або якийсь текст.

Як умова виходу з циклу Do ... Loop застосовується умова While або умова Until. Цикл виконується, поки заданий твердження залишається істинним (While) або поки воно не стає справжнім (Until). Так, щоб задати цикл, припиняється при виявленні порожній осередки в першому стовпці, слід використовувати умову While:

Відповідно до цієї умови While цикл виконується до тих пір, поки що обробляється їм осередок не опиниться порожній. Оброблювана рядок задана номером x, і перша осередок цього рядка має координати (x, 1). комбінація знаків <> означає «не дорівнює». Лапки, між якими нічого немає, позначають вільну позицію.

Якщо цикл потрібно виконувати до виявлення осередку, що містить число 365, використовуйте умова Until. У будь-якому випадку саме ви надаєте програмі відомості, що допомагають їй визначити, коли слід вийти з циклу.

Цикл For Each ... Next

Цикл For Each ... Next дозволяє виділити більш темним шрифтом кожне слово «ОК» в тексті обраного фрагмента.

Цикл For Each ... Next використовується для виконання певної дії над кожною клітинкою діапазону даних. Припустимо, наприклад, що в виділеному діапазоні потрібно всюди зобразити слово «ОК» більш темним шрифтом в порівнянні з рештою тексту. Код буде виглядати приблизно так:

Тут «MyCell» вказує поточну комірку, оброблювану в циклі, а «For Each» означає, що в циклі перебираються всі осередки виділеного фрагмента. При виявленні осередки, що містить тільки слово «ОК», це слово виділяється темним шрифтом. (Зовнішній вигляд тексту контролюється властивістю Font. А атрибут Bold означає напівжирний шрифт.)

вкладені цикли


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

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

Використання властивості Cells в циклах

Використання макросів microsoft excel для створення циклів - не хвилюйтеся, я зараз все поясню!

Стовпці позначаються числами, а не літерами.

Дані, що містяться в осередку, можна отримувати в коді макросу циклу двома різними способами. Один з них передбачає використання властивості Cells. а другий - використання властивості Range. У VBA зазвичай буває легше і зручніше працювати з властивістю Cells. оскільки змінювати описувані їм значення простіше. Властивість Range ідентифікує рядки і стовпці на аркуші за допомогою чисел і букв, а у властивості Cells і рядки, і стовпці позначаються числами. Додавання +1 до таких числах дозволяє легко переходити в циклі від рядка до рядка і від стовпчика до колонку, а ось реалізувати в коді перехід від однієї букви до наступної за нею не так просто.

Порада. При необхідності в електронній таблиці можна задати відображення номерів стовпців замість літерних позначень. Виберіть в меню Сервіс команду Параметри і перейдіть на вкладку Загальні. Встановіть прапорець «Стиль посилань R1C1». Якщо пізніше буде потрібно повернути колишні позначення, зніміть цей прапорець.

Вправа

Для виконання вправи завантажте файл macros1

Вправа 1. Підрахунок з використанням циклу Do ... Loop

Цикл Do ... Loop буде використаний для підрахунку кількості рядків в діапазоні даних.

Примітка. У цій вправі змінна z зберігає поточне число рядків, x - поточний номер рядка, а y - номер стовпця (в даному випадку це номер 3, що відповідає стовпцю C).

Вправа 2. Підрахунок осередків з використанням циклу For Each ... Next

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

Примітка. Якщо з'явиться повідомлення Microsoft Visual Basic «Compile error» (помилка компіляції), не хвилюйтеся. Це просто означає, що код в модулі не в точності збігається з кодом, який було запропоновано скопіювати і вставити. Видаліть код з модуля і скопіюйте його туди знову.

Сподобався матеріал? Підпишіться на оновлення сайту.

Схожі статті