1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
|
1 |
|
Добавить текст ячейки в зависимости от цвета ячейки12.02.2017, 12:30. Показов 8214. Ответов 16
Здравствуйте. Я не могу разобраться в написании формулы или макроса. Нужен код для VBA excel.
0 |
aequit 223 / 134 / 45 Регистрация: 08.09.2012 Сообщений: 283 Записей в блоге: 1 |
||||
12.02.2017, 14:22 |
2 |
|||
Файл нужно прикладывать со своими наработками, что не получилось…
0 |
Xiaohny 1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
||||||||
13.02.2017, 11:46 [ТС] |
3 |
|||||||
в ячейке D9 находиться пример цвета.
Добавлено через 17 часов 20 минут
Файл нужно прикладывать со своими наработками, что не получилось… Разве можно задать в словном форматировании условие определения цвета?
0 |
223 / 134 / 45 Регистрация: 08.09.2012 Сообщений: 283 Записей в блоге: 1 |
|
13.02.2017, 14:40 |
4 |
Да, условным форматированием данную задачу нельзя сделать (или я не знаю как)… Вариант условия из первого поста «если ячейка желтого цвета, то в ячейке справа должен появиться текст «желтый», если красного -«красный» можно реализовать циклом по ячейкам из диапазона «справа» и в зависимости от результата в ячейках «слева» писать текст. Для этого в коде нужно запрограммировать соответствие 65535 = «Желтый» и т.д. Например, используя Select Case.
0 |
Xiaohny 1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
||||||
13.02.2017, 16:33 [ТС] |
5 |
|||||
Изменил формулу, в результате в ячейке результат «#ЗНАЧ!»
Вложения
0 |
es geht mir gut 11264 / 4746 / 1183 Регистрация: 27.07.2011 Сообщений: 11,437 |
|
13.02.2017, 16:38 |
6 |
Что может быть не так в моей формуле? А функции-то и нет.
0 |
1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
|
13.02.2017, 16:40 [ТС] |
7 |
Прикрепить файл с макросом не могу, пардоньте
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
|
13.02.2017, 16:51 |
8 |
заархивируйте тогда прицепится.
0 |
1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
|
13.02.2017, 16:54 [ТС] |
9 |
Готово.
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
13.02.2017, 16:58 |
10 |
|||
Решениедля начала так. файл не смотрел
2 |
1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
|
13.02.2017, 17:19 [ТС] |
11 |
Работает, спасибо!
0 |
aequit 223 / 134 / 45 Регистрация: 08.09.2012 Сообщений: 283 Записей в блоге: 1 |
||||
13.02.2017, 17:20 |
12 |
|||
Так тоже можно функцию сделать без создания вспомогательных ячеек. Циферки кодов цветов я выше в файле кидал
0 |
Xiaohny 1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
||||
14.02.2017, 15:21 [ТС] |
13 |
|||
Функция работает только при вводе вручную, но при автозаполнении результатов не дает.
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
14.02.2017, 16:00 |
14 |
|||
добавьте второй строкой
0 |
1 / 1 / 0 Регистрация: 12.02.2017 Сообщений: 52 |
|
14.02.2017, 16:27 [ТС] |
15 |
Не работает
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
|
14.02.2017, 17:52 |
16 |
вы опять не правильно пишите ф-цию. у вас в ф-ции должна быть строка examV2=….., а у вас её нет.
0 |
1062 / 506 / 137 Регистрация: 27.02.2013 Сообщений: 1,451 |
|
14.02.2017, 19:34 |
17 |
РешениеXiaohny, посмотрите файл.Я когда-то занимался подобной проблемой.Там я привел пример как вам надо используя функции ClosestRGBConstantColorName() и CellColor(),объединив их.
2 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
14.02.2017, 19:34 |
Помогаю со студенческими работами здесь Изменение цвета строки(ячейки) в зависимости от свойств реквизита спрв Изменение цвета ячейки в таблице Excel в зависимости от сегодняшней даты Как задать значение для ячейки в зависимости от значения другой ячейки Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Изменения формата ячейки в зависимости от значения другой ячейки Задача, которая в принципе решается средствами… Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 17 |
Вычисления по цвету ячеек
Помечать ячейки цветом, используя заливку или цвет шрифта, очень удобно и наглядно. Если вы не дальтоник, конечно Трудности возникают тогда, когда по такой раскрашенной таблице возникает необходимость сделать отчет. И если фильтровать и сортировать по цвету Excel в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложные пользовательские макрофункции на Visual Basic, которые позволят нам суммировать/подсчитывать количество/среднее арифметическое ячеек с определенным цветом заливки/шрифта.
На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt+F11, чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст следующих функций:
Function CountByColor(DataRange As Range, ColorSample As Range) As Long Dim cell As Range, n As Long For Each cell In DataRange If cell.Interior.Color = ColorSample.Interior.Color Then n = n + 1 Next cell CountByColor = n End Function Function SumByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value Next cell SumByColor = total End Function Function AverageByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor = total / n End Function
Как легко сообразить, первая функция здесь вычисляет количество ячеек с заданным цветом заливки, вторая — сумму, а третья — среднее арифметическое. У всех функций два аргумента:
- DataRange — диапазон исходных ячеек с числами, раскрашенных в разные цвета
- ColorSample — ячейка, цвет заливки которой мы берём за образец
Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы — кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:
Добавление условий
Аналогичный подход можно легко масштабировать, добавляя, при необходимости, дополнительные условия в проверку (команда if … then…). Так, например, если нам нужно при вычислении среднего арифметического учитывать не только цвет заливки, но и цвет шрифта (т.е. считать не просто жёлтые, а именно жёлто-красные ячейки), то код нашей макро-функции будет выглядеть так:
Function AverageByColor2(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color And cell.Font.Color = ColorSample.Font.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor2 = total / n End Function
Разница только в добавленном через логическую связку «И» (and) условии на проверку соответствия цвета шрифта очередной проверяемой ячейки cell.Font.Color цвету шрифта ячейки-образца ColorSample.Font.Color.
Ограничения и нюансы пересчёта
У созданных нами макрофункций есть 2 важных нюанса.
Во-первых, эти функции «не видят» заливку, созданную с помощью условного форматирования, т.е. работают только с цветом, который был задан для ячеек вручную.
Во-вторых, к сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением её содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма/среднее/количество по нашим функциям автоматически пересчитываться пересчитываться не будет.
Полностью решить эту проблему невозможно, но есть несколько способов её обойти:
- Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter, т.е. имитировать повторный ввод функции в ячейку — Excel её заново пересчитает и выдаст обновленный результат.
- Можно использовать сочетание клавиш Ctrl+Alt+F9, которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
- Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно — даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго
Ссылки по теме
- Сортировка строк по цвету
- Функции подсчета количества и суммы ячеек по цвету из надстройки PLEX
- Что такое «ад условного форматирования» и как его победить
Заливка ячейки цветом в VBA Excel. Фон ячейки. Свойства .Interior.Color и .Interior.ColorIndex. Цветовая модель RGB. Стандартная палитра. Очистка фона ячейки.
Свойство .Interior.Color объекта Range
Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом (зарисовки, добавления, изменения фона) является использование свойства .Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).
Заливка ячейки цветом в VBA Excel
Пример кода 1:
Sub ColorTest1() Range(«A1»).Interior.Color = 31569 Range(«A4:D8»).Interior.Color = 4569325 Range(«C12:D17»).Cells(4).Interior.Color = 568569 Cells(3, 6).Interior.Color = 12659 End Sub |
Поместите пример кода в свой программный модуль и нажмите кнопку на панели инструментов «Run Sub» или на клавиатуре «F5», курсор должен быть внутри выполняемой программы. На активном листе Excel ячейки и диапазон, выбранные в коде, окрасятся в соответствующие цвета.
Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:
Sub ColorTest11() Cells(1, 1).Interior.Color = —12207890 Cells(2, 1).Interior.Color = 16777215 + (—12207890) Cells(3, 1).Interior.Color = 4569325 End Sub |
Проверено в Excel 2016.
Вывод сообщений о числовых значениях цветов
Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код VBA Excel выводит сообщения о числовых значениях присвоенных ранее цветов.
Пример кода 2:
Sub ColorTest2() MsgBox Range(«A1»).Interior.Color MsgBox Range(«A4:D8»).Interior.Color MsgBox Range(«C12:D17»).Cells(4).Interior.Color MsgBox Cells(3, 6).Interior.Color End Sub |
Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.
Использование предопределенных констант
В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:
Предопределенная константа | Наименование цвета |
---|---|
vbBlack | Черный |
vbBlue | Голубой |
vbCyan | Бирюзовый |
vbGreen | Зеленый |
vbMagenta | Пурпурный |
vbRed | Красный |
vbWhite | Белый |
vbYellow | Желтый |
xlNone | Нет заливки |
Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:
Пример кода 3:
Range(«A1»).Interior.Color = vbGreen |
Цветовая модель RGB
Цветовая система RGB представляет собой комбинацию различных по интенсивности основных трех цветов: красного, зеленого и синего. Они могут принимать значения от 0 до 255. Если все значения равны 0 — это черный цвет, если все значения равны 255 — это белый цвет.
Выбрать цвет и узнать его значения RGB можно с помощью палитры Excel:
Палитра Excel
Чтобы можно было присвоить ячейке или диапазону цвет с помощью значений RGB, их необходимо перевести в десятичное число, обозначающее цвет. Для этого существует функция VBA Excel, которая так и называется — RGB.
Пример кода 4:
Range(«A1»).Interior.Color = RGB(100, 150, 200) |
Список стандартных цветов с RGB-кодами смотрите в статье: HTML. Коды и названия цветов.
Очистка ячейки (диапазона) от заливки
Для очистки ячейки (диапазона) от заливки используется константа xlNone
:
Range(«A1»).Interior.Color = xlNone |
Свойство .Interior.ColorIndex объекта Range
До появления Excel 2007 существовала только ограниченная палитра для заливки ячеек фоном, состоявшая из 56 цветов, которая сохранилась и в настоящее время. Каждому цвету в этой палитре присвоен индекс от 1 до 56. Присвоить цвет ячейке по индексу или вывести сообщение о нем можно с помощью свойства .Interior.ColorIndex:
Пример кода 5:
Range(«A1»).Interior.ColorIndex = 8 MsgBox Range(«A1»).Interior.ColorIndex |
Просмотреть ограниченную палитру для заливки ячеек фоном можно, запустив в VBA Excel простейший макрос:
Пример кода 6:
Sub ColorIndex() Dim i As Byte For i = 1 To 56 Cells(i, 1).Interior.ColorIndex = i Next End Sub |
Номера строк активного листа от 1 до 56 будут соответствовать индексу цвета, а ячейка в первом столбце будет залита соответствующим индексу фоном.
Подробнее о стандартной палитре Excel смотрите в статье: Стандартная палитра из 56 цветов, а также о том, как добавить узор в ячейку.
Использование условия if, для закрашенной ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Авиасимулятор, что же может быть лучше, чем по управлять огромным лайнером, и провести его из одного аэропорта в другой. Авиасимуляторов гражданской авиации довольно немного, среди них Microsoft Flight Simulator X (MFSX), X-Plane и другие, среди которых красуется FlightGear Flight Simulator . Что его отличает от других ему подобных, это его доступность, симулятор является абсолютно бесплатным. Конечно в нем нет красивых ландшафтов и объектов как в Microsoft Flight Simulator X и X-Plane, но модели самолетов так же достойны внимания. FlightGear Немного расскажу о том, какие нам понадобятся знания для того, что бы совершить полет в FlightGear. Для начала скачиваем и устанавливаем последнюю версию игры. Запускаем. Перед нами меню игры. На вкладке Enviroment выбираем желаемое время полета. Там же можно выбрать реальное время, но учтите что если вы будите играть вечером, то все полеты будут ночные, по этому для начала ставим лето (summer) и утро или день (morning). На в
В этой статье говорится об автоматическом изменении значения ячейки в зависимости от цвета фона в Excel. Например, если выделенные ячейки заполняются красным цветом фона, заполните эти ячейки номером 1, а для ячеек с синим цветом фона заполните номер 0.
Изменить значение в зависимости от цвета ячейки с кодом VBA
Изменить значение в зависимости от цвета ячейки с кодом VBA
Вы можете запустить приведенный ниже код VBA, чтобы изменить значение в зависимости от цвета ячейки в Excel. Пожалуйста, сделайте следующее.
1. Выберите диапазон, в котором вам нужно изменить значения в зависимости от цвета фона, затем нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.
Код VBA: изменение значения в зависимости от цвета ячейки в Excel
Sub ChangeValueBasedOnCellColor()
Dim rg As Range
Dim xRg As Range
Set xRg = Selection.Cells
Application.DisplayAlerts = False
For Each rg In xRg
With rg
Select Case .Interior.Color
Case Is = 255 'Red
.Value = 1
Case Is = 15773696 'Blue
.Value = 0
End Select
End With
Next
Application.DisplayAlerts = False
End Sub
3. нажмите F5 Чтобы запустить код, вы увидите, что все красные ячейки в выбранном диапазоне заполнены цифрой 1, а синие ячейки заполнены цифрой 0, как показано на скриншоте ниже.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (11)
Оценок пока нет. Оцените первым!
Содержание
- Условное форматирование Excel
- Условное форматирование в VBA
- Практическое использование условного форматирования в VBA
- Простой пример создания условного формата для диапазона
Условное форматирование Excel позволяет определять правила, определяющие форматирование ячеек.
Например, вы можете создать правило, выделяющее ячейки, соответствующие определенным критериям. Примеры включают:
- Числа, попадающие в определенный диапазон (например, меньше 0).
- 10 первых пунктов списка.
- Создание «тепловой карты».
- «Формульные» правила практически для любого условного форматирования.
В Excel условное форматирование можно найти на ленте в разделе Главная> Стили (ALT> H> L).
Чтобы создать собственное правило, нажмите «Новое правило», и откроется новое окно:
Условное форматирование в VBA
Доступ ко всем этим функциям условного форматирования можно получить с помощью VBA.
Обратите внимание, что при настройке условного форматирования из кода VBA новые параметры появятся в окне условного форматирования внешнего интерфейса Excel и будут видны пользователю. Пользователь сможет редактировать или удалять их, если вы не заблокировали рабочий лист.
Правила условного форматирования также сохраняются при сохранении рабочего листа.
Правила условного форматирования применяются конкретно к определенному листу и определенному диапазону ячеек. Если они нужны где-то еще в книге, то они также должны быть настроены на этом листе.
Практическое использование условного форматирования в VBA
У вас может быть большой кусок необработанных данных, импортированных на ваш рабочий лист из файла CSV (значения, разделенные запятыми), или из таблицы или запроса базы данных. Это может перетекать в информационную панель или отчет с изменением чисел, импортированных из одного периода в другой.
Если число изменяется и выходит за пределы допустимого диапазона, вы можете выделить это, например, цвет фона ячейки красный, и вы можете сделать это, настроив условное форматирование. Таким образом, пользователь будет немедленно привлечен к этому номеру и сможет выяснить, почему это происходит.
Вы можете использовать VBA для включения или выключения условного форматирования. Вы можете использовать VBA, чтобы очистить правила для диапазона ячеек или снова включить их. Может возникнуть ситуация, когда существует вполне веская причина для необычного числа, но когда пользователь представляет панель управления или отчет на более высокий уровень управления, он хочет иметь возможность убрать «тревожные звонки».
Кроме того, в необработанных импортированных данных вы можете выделить, где числа смехотворно велики или смехотворно малы. Импортируемый диапазон данных обычно имеет разный размер для каждого периода, поэтому вы можете использовать VBA для оценки размера нового диапазона данных и вставки условного форматирования только для этого диапазона.
У вас также может быть ситуация, когда есть отсортированный список имен с числовыми значениями для каждого, например. зарплата сотрудника, экзаменационные отметки. При условном форматировании вы можете использовать градуированные цвета для перехода от самого высокого до самого низкого, что выглядит очень впечатляюще для целей презентации.
Однако список имен не всегда будет статическим по размеру, и вы можете использовать код VBA для обновления шкалы градуированных цветов в соответствии с изменениями размера диапазона.
Простой пример создания условного формата для диапазона
В этом примере настраивается условное форматирование для диапазона ячеек (A1: A10) на листе. Если число в диапазоне от 100 до 150, то цвет фона ячейки будет красным, в противном случае он не будет иметь цвета.
1234567891011121314 | Sub ConditionalFormattingExample ()‘Определить диапазонDim MyRange As RangeУстановите MyRange = Range («A1: A10»)‘Удалить существующее условное форматирование из диапазонаMyRange.FormatConditions.Delete‘Применить условное форматированиеMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlBetween, _Formula1: = «= 100», Formula2: = «= 150″MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)Конец подписки |
Обратите внимание, что сначала мы определяем диапазон MyRange применить условное форматирование.
Затем мы удаляем любое существующее условное форматирование для диапазона. Это хорошая идея, чтобы предотвратить добавление одного и того же правила при каждом запуске кода (конечно, это не подходит для всех обстоятельств).
Цвета представлены числовыми значениями. Для этого рекомендуется использовать обозначение RGB (красный, зеленый, синий). Для этого можно использовать стандартные цветовые константы, например. vbRed, vbBlue, но вы можете выбрать один из восьми цветов.
Доступно более 16,7 млн цветов, и с помощью RGB можно получить доступ ко всем. Это намного проще, чем пытаться вспомнить, какое число соответствует какому цвету. Каждый из трех номеров цветов RGB составляет от 0 до 255.
Обратите внимание, что параметр «xlBetween» является включительным, поэтому значения ячеек 100 или 150 будут удовлетворять условию.
Многовариантное форматирование
Вы можете настроить несколько условных правил в пределах своего диапазона данных, чтобы все значения в диапазоне охватывались разными условиями:
12345678910111213141516171819 | Sub MultipleConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить первое правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlBetween, _Formula1: = «= 100», Formula2: = «= 150″MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)’Добавить второе правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlLess, _Formula1: = «= 100″MyRange.FormatConditions (2) .Interior.Color = vbBlue’Добавить третье правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlGreater, _Formula1: = «= 150″MyRange.FormatConditions (3) .Interior.Color = vbYellowКонец подписки |
В этом примере устанавливается первое правило, как и раньше, с красным цветом ячейки, если значение ячейки находится в диапазоне от 100 до 150.
Затем добавляются еще два правила. Если значение ячейки меньше 100, то цвет ячейки синий, а если больше 150, то цвет ячейки желтый.
В этом примере вам нужно убедиться, что охвачены все возможности чисел и что правила не пересекаются.
Если в этом диапазоне находятся пустые ячейки, они будут отображаться синим цветом, потому что Excel по-прежнему считает их имеющими значение меньше 100.
Чтобы решить эту проблему, добавьте еще одно условие в качестве выражения. Это необходимо добавить в качестве первого правила условия в коде. При наличии нескольких правил очень важно установить правильный порядок выполнения, иначе результаты могут быть непредсказуемыми.
1234567891011121314151617181920212223 | Sub MultipleConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить первое правилоMyRange.FormatConditions.Add Тип: = xlExpression, Formula1: = _»= LEN (TRIM (A1)) = 0″MyRange.FormatConditions (1) .Interior.Pattern = xlNone’Добавить второе правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlBetween, _Formula1: = «= 100», Formula2: = «= 150″MyRange.FormatConditions (2) .Interior.Color = RGB (255, 0, 0)’Добавить третье правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlLess, _Formula1: = «= 100″MyRange.FormatConditions (3) .Interior.Color = vbBlue’Добавить четвертое правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlGreater, _Formula1: = «= 150″MyRange.FormatConditions (4) .Interior.Color = RGB (0, 255, 0)Конец подписки |
При этом используется тип xlExpression, а затем используется стандартная формула Excel, чтобы определить, является ли ячейка пустой, а не числовым значением.
Объект FormatConditions является частью объекта Range. Он действует так же, как коллекция с индексом, начинающимся с 1. Вы можете перебирать этот объект, используя цикл For… Next или For… Each.
Удаление правила
Иногда вам может потребоваться удалить отдельное правило из набора из нескольких правил, если оно не соответствует требованиям к данным.
12345678910111213 | Sub DeleteConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить первое правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlBetween, _Formula1: = «= 100», Formula2: = «= 150″MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)’Удалить правилоMyRange.FormatConditions (1) .DeleteКонец подписки |
Этот код создает новое правило для диапазона A1: A10, а затем удаляет его. Вы должны использовать правильный номер индекса для удаления, поэтому проверьте «Управление правилами» в интерфейсе Excel (это покажет правила в порядке выполнения), чтобы убедиться, что вы получили правильный номер индекса. Обратите внимание, что в Excel нет возможности отмены, если вы удаляете правило условного форматирования в VBA, в отличие от того, если вы делаете это через интерфейс Excel.
Изменение правила
Поскольку правила представляют собой набор объектов на основе указанного диапазона, вы можете легко вносить изменения в определенные правила с помощью VBA. Фактические свойства после добавления правила доступны только для чтения, но вы можете использовать метод Modify для их изменения. Доступны для чтения / записи такие свойства, как цвета.
123456789101112131415 | Sub ChangeConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить первое правилоMyRange.FormatConditions.Add Тип: = xlCellValue, оператор: = xlBetween, _Formula1: = «= 100», Formula2: = «= 150″MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)’Изменить правилоMyRange.FormatConditions (1) .Modify xlCellValue, xlLess, «10»‘Изменить цвет правилаMyRange.FormatConditions (1) .Interior.Color = vbGreenКонец подписки |
Этот код создает объект диапазона (A1: A10) и добавляет правило для чисел от 100 до 150. Если условие истинно, цвет ячейки меняется на красный.
Затем код изменяет правило на числа меньше 10. Если условие истинно, цвет ячейки теперь меняется на зеленый.
Использование градуированной цветовой схемы
Условное форматирование Excel позволяет использовать градуированные цвета для диапазона чисел, идущих в возрастающем или убывающем порядке.
Это очень полезно, когда у вас есть данные, такие как данные о продажах по географическим регионам, температурам в городах или расстояниям между городами. Используя VBA, вы получаете дополнительное преимущество, заключающееся в возможности выбирать собственную градуированную цветовую схему вместо стандартных, предлагаемых в интерфейсе Excel.
1234567891011121314151617181920212223242526272829 | Sub GraduatedColors ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Определить тип шкалыMyRange.FormatConditions.AddColorScale ColorScaleType: = 3’Выберите цвет для наименьшего значения в диапазонеMyRange.FormatConditions (1) .ColorScaleCriteria (1) .Type = _xlConditionValueLowestValueС MyRange.FormatConditions (1) .ColorScaleCriteria (1) .FormatColor.Color = 7039480.Конец с’Выберите цвет для средних значений в диапазонеMyRange.FormatConditions (1) .ColorScaleCriteria (2) .Type = _xlConditionValuePercentileMyRange.FormatConditions (1) .ColorScaleCriteria (2) .Value = 50’Выберите цвет для средней точки диапазонаС MyRange.FormatConditions (1) .ColorScaleCriteria (2) .FormatColor.Color = 8711167.Конец с’Выберите цвет для максимального значения в диапазонеMyRange.FormatConditions (1) .ColorScaleCriteria (3) .Type = _xlConditionValueHighestValueС MyRange.FormatConditions (1) .ColorScaleCriteria (3) .FormatColor.Color = 8109667.Конец сКонец подписки |
Когда этот код запускается, он будет градуировать цвета ячеек в соответствии с возрастающими значениями в диапазоне A1: A10.
Это очень впечатляющий способ отображения данных, который наверняка привлечет внимание пользователей.
Условное форматирование значений ошибок
Когда у вас огромный объем данных, вы можете легко пропустить значение ошибки в различных таблицах. Если это будет представлено пользователю без разрешения, это может привести к большим проблемам, и пользователь потеряет уверенность в цифрах. Это использует тип правила xlExpression и функцию Excel IsError для оценки ячейки.
Вы можете создать код, чтобы все ячейки с ошибками имели красный цвет:
1234567891011 | Sub ErrorConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить правило ошибкиMyRange.FormatConditions.Add Тип: = xlExpression, Formula1: = «= IsError (A1) = true»‘Установить красный цвет салона.MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)Конец подписки |
Условное форматирование дат в прошлом
У вас могут быть импортированные данные там, где вы хотите выделить даты, которые были в прошлом. Примером этого может быть отчет по дебиторам, в котором вы хотите выделить любые старые даты в счетах-фактурах старше 30 дней.
Этот код использует тип правила xlExpression и функцию Excel для оценки дат.
1234567891011 | Подложка DateInPastConditionalFormattingExample ()Dim MyRange As Range’Создать объект диапазона на основе столбца датУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить правило ошибки для прошлых датMyRange.FormatConditions.Add Тип: = xlExpression, Formula1: = «= Now () — A1> 30″‘Установить красный цвет салона.MyRange.FormatConditions (1) .Interior.Color = RGB (255, 0, 0)Конец подписки |
Этот код принимает диапазон дат в диапазоне A1: A10 и устанавливает красный цвет ячейки для любой даты, прошедшей более 30 дней.
В формуле, используемой в условии, Now () указывает текущую дату и время. Это будет продолжать пересчитывать каждый раз, когда рабочий лист пересчитывается, поэтому форматирование будет меняться от одного дня к другому.
Использование панелей данных в условном форматировании VBA
Вы можете использовать VBA для добавления гистограмм к диапазону чисел. Это почти как мини-диаграммы, и они дают мгновенное представление о том, насколько велики числа по отношению друг к другу. Принимая значения по умолчанию для гистограмм, код очень легко писать.
123456 | Sub DataBarFormattingExample ()Dim MyRange As RangeУстановите MyRange = Range («A1: A10»)MyRange.FormatConditions.DeleteMyRange.FormatConditions.AddDatabarКонец подписки |
Ваши данные на листе будут выглядеть так:
Использование значков в условном форматировании VBA
Вы можете использовать условное форматирование, чтобы поместить значки рядом с числами на листе. Значки могут быть в виде стрелок, кружков или различных других форм. В этом примере код добавляет значки стрелок к числам в зависимости от их процентных значений:
12345678910111213141516171819202122232425 | Sub IconSetsExample ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить набор иконок в объект FormatConditionsMyRange.FormatConditions.AddIconSetCondition’Установите набор иконок в стрелки — условие 1С MyRange.FormatConditions (1).IconSet = ActiveWorkbook.IconSets (xl3Arrows)Конец с’установить критерии значка для требуемого процентного значения — условие 2С MyRange.FormatConditions (1) .IconCriteria (2).Type = xlConditionValuePercent.Значение = 33.Operator = xlGreaterEqualКонец с’установить критерии значка для требуемого процентного значения — условие 3С MyRange.FormatConditions (1) .IconCriteria (3).Type = xlConditionValuePercent.Значение = 67.Operator = xlGreaterEqualКонец сКонец подписки |
Это даст мгновенное представление, показывающее, высокое или низкое число. После запуска этого кода ваш рабочий лист будет выглядеть так:
Использование условного форматирования для выделения пятерки лучших
Вы можете использовать код VBA, чтобы выделить 5 первых чисел в диапазоне данных. Вы используете параметр под названием «AddTop10», но вы можете настроить номер ранга в коде на 5. Пользователь может захотеть увидеть самые высокие числа в диапазоне без предварительной сортировки данных.
1234567891011121314151617181920212223 | Sub Top5Example ()Dim MyRange As Range’Создать объект диапазонаУстановите MyRange = Range («A1: A10»)’Удалить предыдущие условные форматыMyRange.FormatConditions.Delete’Добавить условие Top10MyRange.FormatConditions.AddTop10С MyRange.FormatConditions (1)’Установить параметр сверху вниз.TopBottom = xlTop10Top’Установить только топ 5.Ранг = 5Конец сС MyRange.FormatConditions (1) .Font’Установить цвет шрифта.Color = -16383844.Конец сС MyRange.FormatConditions (1) .Interior’Установить цвет фона ячейки.Color = 13551615Конец сКонец подписки |
Данные на вашем листе после запуска кода будут выглядеть так:
Обратите внимание, что значение 145 появляется дважды, поэтому выделяются шесть ячеек.
Значение параметров StopIfTrue и SetFirstPriority
StopIfTrue имеет значение, если диапазон ячеек имеет несколько правил условного форматирования. Одиночная ячейка в пределах диапазона может удовлетворять первому правилу, но также может удовлетворять последующим правилам. Как разработчик, вы можете захотеть, чтобы форматирование отображалось только для первого правила. Другие критерии правила могут перекрываться и вносить непреднамеренные изменения, если им разрешено продолжить работу по списку правил.
По умолчанию для этого параметра установлено значение True, но вы можете изменить его, если хотите, чтобы учитывались все остальные правила для этой ячейки:
1 | MyRange. FormatConditions (1) .StopIfTrue = False |
Параметр SetFirstPriority указывает, будет ли это правило условия оцениваться первым, если для этой ячейки существует несколько правил.
1 | MyRange. FormatConditions (1) .SetFirstPriority |
Это перемещает позицию этого правила в позицию 1 в наборе условий форматирования, а любые другие правила будут перемещены вниз с измененными номерами индексов. Будьте осторожны, если вы вносите какие-либо изменения в правила в коде, используя порядковые номера. Вам необходимо убедиться, что вы изменяете или удаляете правильное правило.
Вы можете изменить приоритет правила:
1 | MyRange. FormatConditions (1) .Priority = 3 |
Это изменит относительное положение любых других правил в списке условного формата.
Использование условного форматирования для ссылки на другие значения ячеек
Это то, чего нельзя сделать с помощью условного форматирования Excel. Однако для этого вы можете создать свой собственный код VBA.
Предположим, у вас есть столбец данных, а в ячейке рядом с каждым числом есть текст, указывающий, какое форматирование должно выполняться для каждого числа.
Следующий код выполнит поиск по вашему списку чисел, отыщет в соседней ячейке форматирование текста, а затем отформатирует число, как требуется:
123456789101112131415161718192021 | Sub ReferToAnotherCellForConditionalFormatting ()’Создайте переменные для хранения количества строк для табличных данныхDim Row as long, N as long’Захватить количество строк в диапазоне табличных данныхRRow = ActiveSheet.UsedRange.Rows.Count’Перебрать все строки в диапазоне табличных данныхДля N = 1 в ряд’Используйте оператор Select Case для оценки форматирования на основе столбца 2Выберите Case ActiveSheet.Cells (N, 2) .Value.’Преврати цвет салона в синийКорпус «Синий»ActiveSheet.Cells (N, 1) .Interior.Color = vbBlue’Преврати цвет салона в красныйКейс «Красный»ActiveSheet.Cells (N, 1) .Interior.Color = vbRed’Преврати цвет салона в зеленыйКорпус «Зеленый»ActiveSheet.Cells (N, 1) .Interior.Color = vbGreenКонец ВыбратьСледующий NКонец подписки |
После того, как этот код был запущен, ваш рабочий лист теперь будет выглядеть так:
Ячейки, используемые для форматирования, могут находиться в любом месте рабочего листа или даже на другом листе в книге. Вы можете использовать любую форму текста, чтобы создать условие для форматирования, и вы ограничены только вашим воображением в использовании этого кода.
Операторы, которые можно использовать в операторах условного форматирования
Как вы видели в предыдущих примерах, операторы используются для определения того, как будут оцениваться значения условий, например xlBetween.
Существует ряд этих операторов, которые можно использовать в зависимости от того, как вы хотите указать критерии правила.
Имя | Ценить | Описание |
xlBetween | 1 | Между. Может использоваться только при наличии двух формул. |
xlEqual | 3 | Равный. |
xlGreater | 5 | Больше чем. |
xlGreaterEqual | 7 | Больше или равно. |
xl Меньше | 6 | Меньше, чем. |
xlLessEqual | 8 | Меньше или равно. |
xlNotBetween | 2 | Не между. Может использоваться только при наличии двух формул. |
xlNotEqual | 4 | Не равный. |
- Условное форматирование в Excel VBA
Условное форматирование в Excel VBA
В Excel мы все использовали условное форматирование для выделения дублирующихся значений. В основном условное форматирование используется для получения дублированных значений. Мы можем выделить дубликаты значений разными способами. Мы можем выделить дубликаты значений, диапазон конкретных значений, а также определить правило для завершения критериев форматирования. Ниже приведены функции переменных, доступные в разделе «Условное форматирование».
Но что, если мы сможем автоматизировать этот процесс выделения дубликатов или любых других значений в соответствии с нашим требованием. Критерии, которые мы можем определить с помощью условного форматирования в Excel, также могут быть выполнены в VBA. Для применения условного форматирования мы можем выбрать любую ячейку, диапазон которой доступен на листе Excel. Условное форматирование работает только тогда, когда определенные критерии соответствуют требованию. Иначе, это не покажет никакого изменения цвета. С помощью условного форматирования в VBA мы можем изменить цвет любой ячейки или содержимого ячейки, удалить цвет ячейки или удалить цвет. Помимо изменения цвета ячейки, мы можем изменить содержимое ячейки на текст, выделенный жирным шрифтом или курсивом . После этого мы можем отменить все изменения.
Как использовать условное форматирование в Excel VBA?
Ниже приведены различные примеры использования функции условного форматирования в Excel с использованием кода VBA.
Вы можете скачать этот шаблон Excel для условного форматирования VBA здесь — Шаблон Excel для условного форматирования VBA
Условное форматирование VBA — пример № 1
У нас есть данные о некоторых числах и тексте, как показано ниже в столбцах A и B. Теперь мы уже классифицировали цвет, который нам нужно присвоить числу и тексту, который находится в ячейке D2. Мы определили желтый цвет для номера 1 и алфавита A и зеленый цвет для номера 2 и алфавита B.
Хотя условное форматирование VBA может быть реализовано в модуле, но написание кода для условного форматирования на листе заставит код работать только на этом листе. Для этого вместо того, чтобы перейти к опции «Модуль», нажмите на вкладку «Вставка», чтобы вставить модуль.
Шаг 1: Теперь в первом раскрывающемся списке выберите « Рабочий лист», который по умолчанию будет общим, и в раскрывающемся списке «Выбор» он автоматически выберет параметр SelectionChange, как показано ниже.
Шаг 2: Как только мы это сделаем, он автоматически активирует частную подкатегорию, и целевая ячейка будет в диапазоне.
Код:
Private Sub Worksheet_SelectionChange (цель ByVal в качестве диапазона) End Sub
Шаг 3: Теперь напишите код, сначала определите переменную MyRange как Range . Или вы можете выбрать любое другое имя вместо MyRange согласно вашему выбору.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Sub End Sub
Шаг 4: Используйте Set и выберите определенный диапазон, как показано ниже.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = End Sub
Шаг 5: После этого выберите Рабочий лист, к которому мы хотим применить условное форматирование. Здесь наш лист Sheet1. Мы можем поставить последовательность также как 1 вместо записи Sheet1. А затем выберите диапазон тех ячеек, которые нам нужно отформатировать. Здесь наш диапазон от ячейки A1 до B8.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Set Range MyRange = Worksheets ("Sheet1"). Range ("A1: B8") End Sub
Шаг 6: Теперь откройте цикл For Each-Next, как показано ниже. И начнем с выбора переменной MyRange, определенной в Cell .
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange Next End Sub
Шаг 7: Теперь снова откройте цикл If-Else.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если End If Next End Sub
Это регион, в котором мы назначаем цвета всем числам и алфавитам, имеющимся в нашем ассортименте.
Шаг 8: Напишите код, если значение ячейки равно 1, тогда цвет интерьера: выбранная ячейка диапазона от A1 до B8 будет зеленого цвета. А для зеленого у нас есть цветовой код, назначенный ему как 6.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если Cell.Value Like "1", то Cell.Interior.ColorIndex = 6 End If Next End Sub
Шаг 9: Теперь для значения ячейки номер 2. Иначе, если значение ячейки любой ячейки из выбранного диапазона равно 2, то цвет внутренней части этой ячейки будет желтым. А для желтого у нас есть код цвета, назначенный ему как 4.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если Cell.Value Like "1", то Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Как "2", то Cell.Interior.ColorIndex = 4 End If Next End Sub
Для каждого цвета у нас есть разные цветовые коды, назначенные им, которые начинаются с 1 до 56. Принимая во внимание, что числовой код 1 назначается черному цвету, а номер 56 назначается темно-серому цвету. Между прочим, у нас есть другие цвета, которые мы можем найти в Microsoft Documents.
Шаг 10: Если что-либо из перечисленного
условие — ЛОЖЬ, тогда у нас будет другое условие, если если значение ячейки равно А, то внутренний цвет ячейки будет Желтым. И для желтого снова мы назначим код как 6.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если Cell.Value Like "1", то Cell.Interior.ColorIndex = 6 ElseIf Cell.Value как «2», затем Cell.Interior.ColorIndex = 4 ElseIf Cell.Value, как «A», то Cell.Interior.ColorIndex = 6 End If Next End Sub
Шаг 11: Сделайте то же самое для значения ячейки B, с цветовым кодом 4, как зеленый.
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если 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 Как «B» Тогда Cell.Interior.ColorIndex = 4 End If Next End Sub
Шаг 12: Если какое-либо из условий не TRUE, то для Else мы предпочтем выбрать цветовой код как None .
Код:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") для каждой ячейки в MyRange, если 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 Как «B» Тогда Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNone End If Next End Sub
Шаг 13: Поскольку код большой, для компиляции каждого шага кода нажмите функциональную клавишу F8. Если ошибки не найдены, нажмите кнопку воспроизведения, чтобы запустить весь код за один раз. Мы увидим, что согласно правилу условного форматирования, определенному в коде VBA, цвет ячеек был изменен на выбранные цветовые коды, как показано ниже.
Шаг 14: Это форматирование теперь исправлено. Если мы хотим увидеть изменения в цвете, для теста давайте изменим значение любой ячейки, считая А1 с 1 на 2. Мы увидим, что цвет ячейки А1 меняется на Зеленый.
Это связано с тем, что мы объявили, что в диапазоне от A1 до B8 любая ячейка, содержащая числа 1 и 2 и алфавиты A и B, будет отформатирована в желтый и зеленый цвета, как показано в ячейках D2-E3.
Плюсы и минусы
- Это дает мгновенный вывод, если у нас есть огромные данные. Принимая во внимание, что если мы применим то же самое из пункта меню Excel, потребуется время, чтобы очистить форматирование для большого набора данных.
- Мы можем выполнять все типы функций, которые доступны в Excel для условного форматирования в VBA.
- Не рекомендуется применять условное форматирование VBA для небольшого набора данных.
То, что нужно запомнить
- Есть много других функций, кроме выделения дубликатов и одинаковых ячеек значений. Мы можем изменить формат ячейки любым способом, таким как полужирный шрифт, текст курсивом, изменение цвета шрифта, изменение цвета фона, выделение значений в некотором определенном диапазоне.
- После применения условного форматирования мы можем изменить правило, фактически мы можем также удалить условия форматирования. Так что наши данные вернутся к норме.
- Мы можем применить более одного условия в одном макросе.
Рекомендуемые статьи
Это руководство по условному форматированию VBA. Здесь мы обсудим, как использовать функцию условного форматирования Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Функция копирования и вставки в VBA
- Функция подстроки Excel
- Индекс VBA вне диапазона
- Excel ISNUMBER Formula
- Условное форматирование для дат в Excel