Sąlyginis VBA formatavimas - Taikykite sąlyginį formatą naudodami „VBA Excel“

Sąlyginis formatavimas „Excel VBA“

„Excel“ langelyje ar langelių diapazone galime taikyti sąlyginį formatavimą. Sąlyginis formatas yra formatas, kuris taikomas tik tiems langeliams, kurie atitinka tam tikrus kriterijus, pvz., Reikšmes, viršijančias tam tikrą vertę, teigiamas ar neigiamas reikšmes arba reikšmes su tam tikra formule ir pan. Šis sąlyginis formatavimas taip pat gali būti atliekamas naudojant „Excel VBA“ „ Formato sąlygų rinkimas “ makrokomandoje / procedūroje.

Formato sąlyga naudojama norint parodyti sąlyginį formatą, kurį galima nustatyti iškviečiant metodą, kuris pateikia tokio tipo kintamąjį. Jame yra visi sąlyginiai vieno diapazono formatai ir jame gali būti tik trys formato sąlygos.

FormatConditions.Add / Modify / Delete yra naudojamas VBA norint pridėti / modifikuoti / ištrinti FormatCondition objektus prie kolekcijos. Kiekvieną formatą vaizduoja „FormatCondition“ objektas. „FormatConditions“ yra objekto „Range“ ypatybė ir pridėkite šiuos parametrus su žemiau esančia sintakse:

FormatConditions.Add (Tipas, Operatorius, Formulė1, Formulė2) 

Sintaksės „Pridėti formulę“ argumentai yra šie:

  • Tipas: būtinas, nurodo, jei sąlyginis formatas yra pagrįstas langelyje esančia verte arba išraiška.
  • Operatorius: Pasirenkama, nurodo operatorių, kuris turi būti naudojamas su verte, kai „Tipas“ yra pagrįstas langelio verte.
  • 1 formulė: neprivaloma, reiškia vertę arba išraišką, susietą su sąlyginiu formatu.
  • 2 formulė: neprivaloma, reiškia reikšmę arba išraišką, susietą su antrąja sąlyginio formato dalimi, kai parametras: „Operatorius“ yra „xlBetween“ arba „xlNotBetween“.

FormatConditions.Modify taip pat turi tą pačią sintaksę kaip FormatConditions.Add.

Toliau pateikiamas kai kurių reikšmių / išvardijimų, kuriuos gali naudoti kai kurie parametrai „Pridėti“ / „Keisti“, sąrašas:

VBA sąlyginio formatavimo pavyzdžiai

Žemiau pateikiami sąlyginio formatavimo „Excel VBA“ pavyzdžiai.

1 pavyzdys

Tarkime, kad turime „Excel“ failą, kuriame yra kai kurių mokinių vardai ir ženklai, ir norime nustatyti / paryškinti pažymėjimus kaip paryškintos ir mėlynos spalvos, kuri yra didesnė nei 80, ir kaip paryškintos ir raudonos spalvos, kuri yra mažesnė nei 50. Pažvelkime į byloje esančius duomenis:

Mes naudojame „FormatConditions“. Norėdami tai padaryti, pridėkite funkciją taip, kaip nurodyta toliau:

  • Eikite į kūrėją -> „Visual Basic“ redaktorius:
  • Dešiniuoju pelės mygtuku spustelėkite darbaknygės pavadinimą „Project-VBAProject“ srityje-> „Įterpti“ -> „Modulis“.
  • Dabar šiame modulyje parašykite kodą / procedūrą:

Kodas:

Antrinis formatavimas () Pabaiga Sub
  • Apibrėžkite kintamąjį rng, condition1, condition2:

Kodas:

Papildomas formatavimas () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition End Sub
  • Nustatykite / pataisykite diapazoną, kuriame norimas sąlyginis formatavimas, naudojant VBA „Range“ funkciją:

Kodas:

Papildomas formatavimas () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") End Sub
  • Ištrinkite / išvalykite esamą sąlyginį formatavimą (jei yra) iš diapazono naudodami „FormatConditions.Delete“:

Kodas:

Papildomas formatavimas () „Dim rng“ kaip „Range Dim“ sąlyga1 kaip „FormatCondition“, sąlyga2 kaip „FormatCondition“ Nustatykite rng = diapazonas („B2“, „B11“) rng.FormatConditions.Delete End Sub
  • Dabar apibrėžkite ir nustatykite kiekvieno sąlyginio formato kriterijus naudodami „FormatConditions.Add“:

Kodas:

Papildomas formatavimas () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Nustatykite sąlygą2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") Pabaiga
  • Apibrėžkite ir nustatykite formatą, kuris bus taikomas kiekvienai sąlygai

Nukopijuokite ir įklijuokite šį kodą į savo VBA klasės modulį.

Kodas:

Papildomas formatavimas () 'Kintamųjų apibrėžimas: Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition' Taisyti / nustatyti diapazoną, kuriame norimas sąlyginis formatavimas Nustatyti rng = Range ("B2", "B11") 'Į ištrinkite / išvalykite esamą sąlyginį formatavimą iš diapazono rng.FormatConditions.Delete 'Kiekvieno sąlyginio formato kriterijų nustatymas ir nustatymas Nustatykite sąlygą1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80") Nustatykite sąlygą2 = rng.FormatConditions. Pridėti (xlCellValue, xlLess, "= 50") 'Kiekvienai sąlygai taikomo formato apibrėžimas ir nustatymas With condition1 .Font.Color = vbBlue .Font.Bold = True End With With condition2 .Font.Color = vbRed .Font. Paryškintas = tikroji pabaiga su pabaigos sub

Dabar, kai paleidžiame šį kodą naudodami F5 klavišą arba rankiniu būdu, matome, kad mažiau nei 50 žymos paryškinamos paryškintai ir raudonai, o didesnės nei 80 - paryškintos ir mėlynos spalvos taip:

Pastaba: Kai kurios suformatuotų langelių, kurias galima naudoti su „FormatCondition“, išvaizda yra šios:

2 pavyzdys

Sakykime, kad aukščiau pateiktame pavyzdyje yra dar vienas stulpelis, kuriame taip pat teigiama, kad studentas yra „viršūnė“, jei jis / ji surenka daugiau nei 80 balų, kitaip prieš juos parašyta „Pass / Fail“. Dabar norime pabrėžti vertybes, nurodytas kaip „Topper“, kaip „Bold and Blue“. Pažvelkime į failo duomenis:

Tokiu atveju kodas / procedūra veiktų taip:

Kodas:

Sub TextFormatting () Pabaiga Sub

Apibrėžkite ir nustatykite formatą, kuris bus taikomas kiekvienai sąlygai

Kodas:

Sub TextFormatting () With Range ("c2: c11"). FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") With .Font .Bold = True .Color = vbBlue Pabaiga Pabaiga Pabaiga Pabaiga

Ankstesniame kode galime pamatyti, ar norime išbandyti, ar diapazone: „C2: C11“ yra eilutė: „Topper“, taigi parametro „Onamestor“, esančio „Format.Add“, reikia išvardyti: „Xcontains“ išbandykite šią sąlygą fiksuotame diapazone (ty C2: C11) ir atlikite reikiamą sąlyginį šio diapazono formatavimą (šrifto pakeitimus).

Dabar, kai paleidžiame šį kodą rankiniu būdu arba paspausdami klavišą F5, matome, kad langelio vertės su „Topper“ bus paryškintos mėlynai ir paryškintai:

Pastaba: Taigi, aukščiau pateiktuose dviejuose pavyzdžiuose matėme, kaip „Pridėti“ metodas veikia esant bet kokiam langelio vertės kriterijui (skaitinei ar tekstinei eilutei).

Below are some other instances/criteria that can be used to test and thus apply VBA conditional formatting on:

  • Format by Time Period
  • Average condition
  • Colour Scale condition
  • IconSet condition
  • Databar condition
  • Unique Values
  • Duplicate Values
  • Top10 values
  • Percentile Condition
  • Blanks Condition, etc.

With different conditions to be tested, different values/enumeration are taken by parameters of ‘Add.’

Things to Remember About VBA Conditional Formatting

  • ‘Add’ method with ‘FormatConditions’ is used to create a new conditional format, ’Delete’ method to delete any conditional format, and ‘Modify’ method to alter any existing conditional format.
  • The ‘Add’ method with ‘FormatConditions Collection’ fails if more than three conditional formats are created for a single range.
  • Norėdami taikyti daugiau nei tris sąlyginius formatus diapazone, naudodami metodą „Pridėti“, galime naudoti „If“ arba „Select case“.
  • Jei metodo „Pridėti“ parametras „Tipas“ yra „xlExpression“, parametras „Operatorius“ nepaisomas.
  • Parametrai: „Formulė1“ ir „Formulė2“ metoduose „Pridėti“ gali būti langelio nuoroda, pastovi vertė, eilutės vertė ar net formulė.
  • Parametras: „Formulė2“ naudojamas tik tada, kai parametras: „Operatorius“ yra „xlBetween“ arba „xlNotBetween“, kitaip jis nepaisomas.
  • Norėdami pašalinti visus sąlyginius formatavimus iš bet kurio darbalapio, galime naudoti metodą „Ištrinti“ taip:
Ląstelės. Formato sąlygos. Ištrinti

Įdomios straipsniai...