Умовне форматування в Excel VBA

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

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

Як використовувати умовне форматування в Excel VBA?

Нижче наведено різні приклади використання функції умовного форматування в Excel за допомогою коду VBA.

Ви можете завантажити цей шаблон Excel з умовним форматуванням VBA тут - VBA Умовне форматування шаблону Excel

Умовне форматування VBA - приклад №1

У нас є дані про деякі числа та текст, як показано нижче у стовпцях А та В. Тепер ми вже класифікували колір, який нам потрібно надати номеру та тексту, який знаходиться у комірці D2. Ми визначили Жовтий колір для номера 1 та алфавіту A та Зелений колір для числа 2 та алфавіт B.

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

Крок 1: Тепер з першого випадаючого списку виберіть робочий аркуш, який за замовчуванням буде загальним, а з випадаючого списку автоматично виберіть параметр SelectionChange, як показано нижче.

Крок 2: Коли ми це зробимо, він автоматично активує приватну підкатегорію, а цільова комірка буде такою ж, як Діапазон.

Код:

 Приватний Sub Workheet_SelectionChange (ByVal Target As Range) Кінець Sub 

Крок 3: Тепер запишіть код, спочатку визначте змінну MyRange як діапазон . Або ви можете вибрати будь-яке інше ім’я замість MyRange відповідно до вашого вибору.

Код:

 Приватний Sub Workheet_SelectionChange (ByVal Target As Range) Dim MyRange Як діапазон End Sub 

Крок 4: Використовуйте Набір і виберіть визначений діапазон, як показано нижче.

Код:

 Приватний підручник_вибір_міни (ціль ByVal як діапазон) Dim MyRange як діапазон, встановлений MyRange = End Sub 

Крок 5: Після цього виберіть робочий аркуш, де ми хочемо застосувати умовне форматування. Ось наш аркуш - Лист1. Ми можемо поставити послідовність також як 1, а не писати Sheet1. А потім виберіть діапазон тих комірок, які нам потрібно відформатувати. Тут наш асортимент - від комірки А1 до В8.

Код:

 Приватний підручник_вибір_міни (ціль ByVal як діапазон) Дім MyRange як діапазон Набір MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") Кінець Sub 

Крок 6: Тепер відкрийте цикл для кожного наступного, як показано нижче. І почніть це з вибору змінної MyRange, визначеної комірки .

Код:

 Приватний підручник_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange Next End Sub 

Крок 7: Тепер у цьому знову відкрийте цикл If-Else.

Код:

 Приватний підручник_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange, якщо закінчується, якщо Next End Sub 

Це регіон, де ми могли б призначити кольори всім числам та алфавітам, доступним у нашому асортименті.

Крок 8: Напишіть код, якщо значення комірки дорівнює 1, а потім - Внутрішній колір, вибрана клітинка діапазону, яка від А1 до В8, буде Зеленою. А для зеленого - кольоровий код, призначений йому як 6.

Код:

 Приватний Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange If Cell.Value Like "1", тоді Cell.Interior.ColorIndex = 6 Кінець, якщо Наступний кінець Підряд 

Крок 9: Тепер для значення числа комірок 2. Ще, якщо значення комірки будь-якої комірки з вибраного діапазону дорівнює 2, то внутрішній колір цієї комірки буде жовтий. А для жовтого у нас кольоровий код призначений йому як 4.

Код:

 Приватний Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange If Cell.Value Like "1", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Як "2", тоді Cell.Interior.ColorIndex = 4 End Якщо наступний кінець Sub 

Для кожного кольору ми присвоюємо їм різні кольори кольорів, які починаються від 1 до 56. Тоді як номер 1 код присвоюється чорному кольорові, а номеру 56 - темно-сірий колір. Між ними у нас є інші інші кольорові відтінки, які ми можемо знайти в Microsoft Documents.

Крок 10: Якщо будь-яке з перерахованого вище

Умова ФАЛЬСЕ, тоді у нас буде інший Else, якщо умова, де, якщо значення комірки дорівнює, то внутрішній колір клітини буде Жовтий. А для жовтого кольору знову призначимо код як 6.

Код:

 Приватний Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange If Cell.Value Like "1", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Як "2", тоді Cell.Interior.ColorIndex = 4 ElseIf Cell.Value як "A", тоді Cell.Interior.ColorIndex = 6 Кінець, якщо наступний кінець Sub 

Крок 11: Те ж саме зробіть і для значення B комірки з кольором 4, як Зелений.

Код:

 Приватний Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange If Cell.Value Like "1", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Як "2", тоді Cell.Interior.ColorIndex = 4 ElseIf Cell.Value як "A", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B", тоді Cell.Interior.ColorIndex = 4 Кінець Якщо наступний кінець Sub 

Крок 12: Якщо будь-яка умова НЕ ПРАВИЛЬНА, тоді для Else ми віддамо перевагу вибору коду кольору як None .

Код:

 Приватний Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Робочі таблиці ("Sheet1"). Діапазон ("A1: B8") для кожної комірки в MyRange If Cell.Value Like "1", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Як "2", тоді Cell.Interior.ColorIndex = 4 ElseIf Cell.Value як "A", тоді Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B", тоді Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlНіколи, якщо наступний кінець Sub 

Крок 13: Оскільки код великий, для складання кожного кроку коду натисніть функціональну клавішу F8. Якщо помилки не знайдено, натисніть кнопку відтворення, щоб запустити весь код за один раз. Ми побачимо, згідно з правилом умовного форматування, визначеним у коді VBA, колір комірок змінено на вибрані кольорові коди, як показано нижче.

Крок 14: Це форматування тепер виправлено. Якщо ми хочемо побачити зміни в кольорі, для тесту давайте змінимо значення будь-якої комірки, розглянемо A1 з 1 на 2. Ми побачимо, колір клітини A1 змінено на зелений.

Це тому, що ми заявили, що в діапазоні від A1 до B8 будь-яка комірка, що містить числа 1 і 2 та алфавіти A і B, буде відформатована як жовтий і зелений колір, як показано в комірці від D2 до E3.

Плюси і мінуси

  • Це дає миттєвий вихід, якщо ми маємо величезні дані. Якщо, якщо ми застосуємо те ж саме з параметра меню Excel, для очищення форматування великого набору даних знадобиться час.
  • Ми можемо виконувати всі типи функцій, які доступні в Excel для умовного форматування також у VBA.
  • Не рекомендується застосовувати VBA Умовне форматування для невеликого набору даних.

Що потрібно пам’ятати

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

Рекомендовані статті

Це посібник із умовного форматування VBA. Тут ми обговорюємо, як використовувати функцію умовного форматування Excel VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Копіювати функцію вставки в VBA
  2. Функція Substring Excel
  3. Підписка VBA поза діапазоном
  4. Формула ЕКСЕЛЬНОГО РОЗМІРУ
  5. Умовне форматування дат в Excel

Категорія: