Условно форматирање ВБА | Примените условни формат користећи ВБА Екцел

Условно форматирање у програму Екцел ВБА

Можемо применити условно форматирање на ћелију или опсег ћелија у програму Екцел. Условни формат је формат који се примењује само на ћелије које испуњавају одређене критеријуме, рецимо вредности изнад одређене вредности, позитивне или негативне вредности или вредности са одређеном формулом итд. Ово условно форматирање се такође може извршити у програму екцел ВБА користећи 'Збирка услова формата’У макро / процедури.

Услов формата користи се за представљање условног формата који се може поставити позивањем методе која враћа променљиву тог типа. Садржи све условне формате за један опсег и може садржати само три услова формата.

ФорматЦондитионс.Адд / Модифи / Делете користи се у ВБА за додавање / измену / брисање објеката ФорматЦондитион у колекцију. Сваки формат је представљен објектом ФорматЦондитион. ФорматЦондитионс је својство објекта Ранге и Додати има следеће параметре са синтаксом испод:

ФорматЦондитионс.Адд (Типе, Оператор, Формула1, Формула2) 

Синтакса формуле Додај има следеће аргументе:

  • Тип: Обавезно, представља да ли се условни формат заснива на вредности присутној у ћелији или изразу
  • Оператор: Необавезно, представља оператор који ће се користити са вредношћу када је „Тип“ заснован на вредности ћелије
  • Формула 1: Опционално, представља вредност или израз повезан са условним форматом.
  • Формула2: Необавезно, представља вредност или израз повезан са другим делом условног формата када је параметар: „Оператор“ или „клБетвеен“ или „клНотБетвеен“

ФорматЦондитионс.Модифи такође има исту синтаксу као ФорматЦондитионс.Адд.

Следи листа неких вредности / набрајања које могу узети неки параметри „Додај“ / „Измени“:

Примери условног форматирања ВБА

Испод су примери условног форматирања у екцелу вба.

Овај ВБА образац условног форматирања можете преузети овде - ВБА шаблон условног форматирања

Пример # 1

Рецимо да имамо Екцел датотеку која садржи имена и оцене неких ученика и желимо да ознаке означимо подебљано и плаво у боји која је већа од 80 и подебљано и црвено у боји која је мања од 50. Погледајмо податке садржане у датотеци:

За постизање овог циља користимо функцију ФорматЦондитионс.Адд као доле:

  • Идите на Девелопер -> Висуал Басиц Едитор:

  • Десни клик на назив радне свеске у окну „Пројецт-ВБАПројецт“ -> „Инсерт“ -> „Модуле“.

  • Сада напишите код / ​​процедуру у овај модул:

Шифра:

 Подобликовање () Крај под 

  • Дефинишите променљиву рнг, цондитион1, цондитион2:

Шифра:

 Подобликовање () Дим рнг Ас Ранге Дим цондитион1 Ас ФорматЦондитион, цондитион2 Ас ФорматЦондитион Енд Суб 

  • Подесите / поправите опсег на којем се жели условно форматирање помоћу функције ВБА ‘Ранге’:

Шифра:

 Подобликовање () Дим рнг Ас Ранге Дим цондитион1 Ас ФорматЦондитион, цондитион2 Ас ФорматЦондитион Сет рнг = Ранге ("Б2", "Б11") Енд Суб 

  • Избришите / обришите свако постојеће условно форматирање (ако постоји) из опсега, користећи „ФорматЦондитионс.Делете“:

Шифра:

 Подобликовање () Дим рнг Ас Ранге Дим цондитион1 Ас ФорматЦондитион, цондитион2 Ас ФорматЦондитион Сет рнг = Ранге ("Б2", "Б11") рнг.ФорматЦондитионс.Делете Енд Суб

  • Сада дефинишите и поставите критеријуме за сваки условни формат, користећи „ФорматЦондитионс.Адд“:

Шифра:

 Подобликовање () Дим рнг Ас Ранге Дим цондитион1 Као ФорматЦондитион, цондитион2 Ас ФорматЦондитион Сет рнг = Ранге ("Б2", "Б11") рнг.ФорматЦондитионс.Делете Сет цондитион1 = рнг.ФорматЦондитионс.Адд (клЦеллВалуе, клГреатер, "= 80 ") Сет цондитион2 = рнг.ФорматЦондитионс.Адд (клЦеллВалуе, клЛесс," = 50 ") Енд Суб 

  • Дефинишите и подесите формат који ће се примењивати за сваки услов

Копирајте и налепите овај код у свој модул класе ВБА.

Шифра:

 Подобликовање () 'Дефинисање променљивих: Дим рнг Ас Ранге Дим цондитион1 Ас ФорматЦондитион, цондитион2 Ас ФорматЦондитион' Фикинг / Сеттинг тхе ранге он вхицх условно форматирање је пожељно Сет рнг = Ранге ("Б2", "Б11") 'То избриши / обриши било које постојеће условно обликовање из опсега рнг.ФорматЦондитионс.Делете 'Дефинисање и постављање критеријума за сваки условни формат Сет цондитион1 = рнг.ФорматЦондитионс.Адд (клЦеллВалуе, клГреатер, "= 80") Сет цондитион2 = рнг.ФорматЦондитионс. Додај (клЦеллВалуе, клЛесс, "= 50") 'Дефинисање и подешавање формата који ће се применити за сваки услов Витх цондитион1 .Фонт.Цолор = вбБлуе .Фонт.Болд = Труе Енд Витх Витх цондитион2 .Фонт.Цолор = вбРед .Фонт. Болд = Труе Енд Витх Енд Суб 

Сада када покренемо овај код помоћу тастера Ф5 или ручно, видимо да су ознаке мање од 50 истакнуте подебљано и црвено, док су оне веће од 80 подебљано и плаво на следећи начин:

Белешка: Нека од својстава изгледа форматираних ћелија која се могу користити са ФорматЦондитион су:

Пример # 2

Рецимо да у горњем примеру имамо још једну колону која такође каже да је ученик ’Топпер’ ако постигне више од 80 оцена, иначе је Пасс / Фаил написан против њих. Сада желимо да истакнемо вредности означене као „Топпер“ као подебљано и плаво. Погледајмо податке садржане у датотеци:

У овом случају, код / ​​поступак би функционисао на следећи начин:

Шифра:

 Обликовање подтекста () Крај под 

Дефинишите и подесите формат који ће се примењивати за сваки услов

Шифра:

 Суб ТектФорматтинг () са опсегом ("ц2: ц11"). ФорматЦондитионс.Адд (клТектСтринг, ТектОператор: = клЦонтаинс, Стринг: = "топпер") Витх .Фонт .Болд = Труе .Цолор = вбБлуе Енд Витх Енд Витх Енд Суб 

У горњем коду можемо видети да желимо да тестирамо да ли опсег: 'Ц2: Ц11' садржи низ: 'Топпер', па параметар: 'Оператор' у 'Формат.Адд' узима набрајање: 'клЦонтаинс' да бисте тестирали ово стање у фиксном опсегу (тј. Ц2: Ц11), а затим извршите потребно условно форматирање (промене фонта) на овом опсегу.

Сада када покренемо овај код ручно или притиском на тастер Ф5, видимо да су вредности ћелија са „Топпер“ истакнуте плавим и подебљаним словима:

Белешка: Дакле, у претходна два примера видели смо како метода „Додај“ функционише у случају било ког критеријума вредности ћелије (нумерички или текстуални низ).

Испод су неки други примери / критеријуми који се могу користити за тестирање и на тај начин применити ВБА условно форматирање на:

  • Формат према временском периоду
  • Просечно стање
  • Стање скале боја
  • Услов ИцонСет
  • Стање траке података
  • Јединствене вредности
  • Дупликат вредности
  • Топ10 вредности
  • Перцентиле Цондитион
  • Стање празнина итд.

Уз различите услове који се испитују, различите вредности / набрајање узимају се параметрима „Додај“.

Ствари које треба запамтити о ВБА условном форматирању

  • Метода „Додај“ са „ФорматЦондитионс“ користи се за стварање новог условног формата, метода „Избриши“ за брисање било ког условног формата и метода „Измени“ за промену било ког постојећег условног формата.
  • Метода „Додај“ са „ФорматЦондитионс Цоллецтион“ не успева ако се за један опсег креира више од три условна формата.
  • Да бисмо применили више од три условна формата на опсег помоћу методе „Додај“, можемо да користимо „Ако“ или „изаберите случај“.
  • Ако метода „Додај“ има параметар „Тип“ као: „клЕкпрессион“, тада се параметар „Оператор“ занемарује.
  • Параметри: „Формула1“ и „Формула2“ у методи „Додај“ могу бити референца на ћелију, константна вредност, вредност низа или чак формула.
  • Параметар: „Формула2“ се користи само када је параметар: „Оператор“ или „клБетвеен“ или „клНотБетвеен“, иначе се занемарује.
  • Да бисмо уклонили сво условно форматирање са било ког радног листа, можемо користити методу „Избриши“ на следећи начин:
Целлс.ФорматЦондитионс.Делете