Как сделать Условное форматирование с помощью VBA в Microsoft Excel
Давайте нарисуем картину Моналисы и оставим Пикассо, используя VBA.
Готовься, готовься … Подожди! Подождите! Придержи лошадей. Мы просто собираемся использовать VBA для условного форматирования, и это проще, чем рисовать? в форме птицы.
Общий синтаксис условного форматирования VBA
If condition than Range(range).Interior.ColorIndex= 1-56
Выполните проверку условия в условии, а затем отформатируйте диапазон, используя свойство .iteriour.colorindex объекта Range. Цветовой индекс насчитывает 56 цветов. Поиграйте с ними в Холи и выясните, какое число соответствует цвету.
Теперь давайте разберемся с этим на примере ==== Пример: код VBA для условного форматирования ячеек
Итак, это сценарий, у нас есть список случайных людей с их возрастом и возрастной группой.
Как легко было бы определить возрастную группу человека, просто взглянув на его имена.
Теперь, чтобы сделать это, я хочу, чтобы имя формата VBA КРАСНОЕ, если он взрослый, ЖЕЛТЫЙ, если он подросток, и ЗЕЛЕНЫЙ, если он ДЕТСКИЙ, и ничего, если ячейка пуста.
Sub FormatUsingVBA() Dim rng As Range Dim lastRow As Long lastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rng = Range("C2:C" & lastRow)For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell End Sub
Чтобы запустить этот код прямо с листа, я нарисовал кнопку на том же листе и назначил ей этот макрос. Теперь, когда вы нажимаете кнопку «Форматировать», ваш код будет запускаться и обновлять ячейки имени цветом в зависимости от их возрастной группы. Как? Давай выясним.
Пояснение к коду:
Dim rng As RangeDim lastRow As LongThese two lines are variable declarations. rng for Range that holds the age group and lastRow to get last nonblank row number.
lastRow = Cells(Rows.Count, 3).End(xlUp).RowThis line returns last row number in lastRow Variable.
Set rng = Range("C2:C" & lastRow)This line sets the range starting from C2 and to the last row. It makes your code dynamic. You add new rows to your data and it will detect and will store in new range in rng variable.
For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell
Это основной сегмент.
For Each cell In rng
Первая строка запускает цикл для всех ячеек в вашем диапазоне. Если cell.Value2 = «Adult», то следующая строка — проверка состояния. Он проверяет, является ли текущее значение ячейки взрослым или нет.
Если да, то выполняется следующая строка, иначе она переходит к следующему оператору if.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 Теперь, если условие IF возвращает TRUE, тогда эта строка устанавливает цвет ячейки на ColorIndex 3 для КРАСНОГО.
Аналогичным образом выполняются следующие операторы IF и выполняются указанные ниже действия.
Так что да, вы можете условно форматировать диапазоны с помощью VBA. Внутренний метод объекта Range управляет многими другими свойствами форматирования. С ними стоит поиграть, вреда не будет, но вы обязательно научитесь. И если вы столкнетесь с какими-либо трудностями, чем то, ради чего я здесь. Задайте свои вопросы в разделе комментариев.
Скачать файл *
`link: /wp-content-uploads-2013-07-Conditional-Formatting-using-VBA-in-Microsoft-Excel.xls [__ Условное форматирование с использованием VBA в Microsoft Excel]
Популярные статьи:
link: / формулы-и-функции-введение-функции-vlookup [Как использовать функцию ВПР в Excel]
link: / tips-countif-in-microsoft-excel [Как использовать функцию СЧЁТЕСЛИ в Excel]
link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]