Как да направите условно форматиране с помощта на VBA в Microsoft Excel

Anonim

Нека да нарисуваме картина на Monalisa и да оставим Пикасо да използва VBA. Готови, подгответе се …

Изчакайте! Изчакайте! Дръжте конете си. Просто ще използваме VBA за условно форматиране и това е по -лесно от това да рисувате? оформена птица.

Общият синтаксис на VBA условно форматиране

Ако условие от Range (range) .Interior.ColorIndex = 1-56

Проверете състоянието си при условието и след това форматирайте диапазона си, като използвате свойството .iteriour.colorindex на обекта Range. Цветовият индекс има 56 цвята. Отидете да играете Холи с тях и проучете кое число притежава кой цвят.
Сега нека го разберем с пример

Пример: VBA код за условно форматиране на клетки

Така че, това е сценарият, имаме списък на случайни хора с тяхната възраст и възрастова група.
Колко лесно би било, ако можеш да кажеш на възрастовата група човек, само като погледнеш имената му.
Сега, за да направя това, искам VBA формат ИМЕН ЧЕРВЕН, ако е възрастен, ЖЪЛТ, ако е тийнейджър, и ЗЕЛЕН, ако е ДЕТЕ и нищо, ако клетката е празна.

ПодформатUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) За всяка клетка В rng If клетка. Value2 = "Adult" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Тогава Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Край Ако следващата клетка Край Под

За да стартирам този код направо от листа, нарисувах бутон на същия лист и му присвоих този макрос. Сега, когато щракнете върху бутона „Форматиране“, вашият код ще се изпълнява и ще актуализира клетките с имена с цвят в зависимост от тяхната възрастова група. Как? Нека разберем.

Код Обяснение:

Dim rng As RangeDim lastRow As Long Тези два реда са променливи декларации. rng за Range, който съдържа възрастовата група и lastRow за получаване на последния непразен номер на ред. 
lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Този ред връща номера на последния ред в променливата lastRow.
Set rng = Range ("C2: C" & lastRow) Този ред задава диапазона, започващ от C2 и до последния ред. Това прави кода ви динамичен. Добавяте нови редове към данните си и те ще откриват и ще се съхраняват в нов диапазон в променлива rng.
За всяка клетка В rng If cell.Value2 = "Adult" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Тогава Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Тогава Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 End If Next клетка 

Това е основният сегмент.

За всяка клетка В rng 

Първият ред изпълнява цикъла до всички клетки във вашия диапазон. Ако cell.Value2 = "Възрастен" Тогава
Следващият ред е проверка на състоянието. Той проверява дали текущата стойност на клетката е Adult или не.
Ако отговорът е „да“, следващият ред се изпълнява, в противен случай той прескача към следващия оператор if. Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Сега, ако условието IF връща TRUE, този ред задава цвета на клетката на ColorIndex 3, който е за RED.

По същия начин следващите оператори IF се изпълняват и предприемат действия, както е посочено.

Така че да, можете условно да форматирате диапазони с помощта на VBA. Интериорният метод на обекта Range контролира много други свойства за форматиране. Трябва да си играете с тях, това няма да навреди, но определено ще се научите. И ако се сблъскате с някакви трудности от това, за което съм тук. Задайте вашите въпроси в секцията за коментари.

Свали файл

Условно форматиране с помощта на VBA в Microsoft Excel

Популярни статии:

50 преки пътища в Excel за повишаване на вашата производителност

Как да използвате функцията VLOOKUP в Excel

Как да използвате функцията COUNTIF в Excel

Как да използвате функцията SUMIF в Excel