VBA tingimuslik vormindamine - Rakendage tingimusvormingut VBA Exceli abil

Lang L: none (table-of-contents)

Tingimuslik vormindamine Exceli VBA-s

Võime Exceli lahtrisse või lahtrivahemikku rakendada tingimuslikku vormindamist. Tingimusvorming on vorming, mida rakendatakse ainult lahtritele, mis vastavad teatud kriteeriumidele, nt teatud väärtusest kõrgemad väärtused, positiivsed või negatiivsed väärtused või kindla valemiga väärtused jne. Seda tingimuslikku vormindamist saab teha ka Exceli VBA programmeerimisel, kasutades makros / protseduuris olev vormingutingimuste kogumine .

Vormingu Tingimust kasutatakse tingimusliku vormingu tähistamiseks, mille saab määrata kutsudes meetodi, mis tagastab seda tüüpi muutuja. See sisaldab kõiki ühe vahemiku tingimusvorminguid ja mahutab ainult kolme vormingutingimust.

FormatConditions.Add / Modify / Delete kasutatakse VBA-s objektide FormatCondition objektide lisamiseks / muutmiseks / kustutamiseks. Iga vormingut esindab objekt FormatCondition. FormatConditions on objekti Range omadus ja lisage järgmised parameetrid allpool oleva süntaksiga:

FormatConditions.Add (tüüp, operaator, valem1, valem2) 

Valemi Lisa süntaksil on järgmised argumendid:

  • Tüüp: kohustuslik, tähistab, kui tingimusvorming põhineb lahtris oleval väärtusel või avaldisel.
  • Operaator: valikuline, tähistab operaatorit, mida tuleb kasutada väärtusega, kui „tüüp” põhineb lahtri väärtusel.
  • Valem1: valikuline, tähistab tingimusvorminguga seotud väärtust või avaldist.
  • Valem2: valikuline, tähistab tingimusliku vormingu teise osaga seotud väärtust või avaldist, kui parameeter: „Operaator” on kas „xlBetween” või „xlNotBetween”.

FormatConditions.Modify'il on sama süntaks nagu FormatConditions.Add.

Järgnevas loendis on mõned väärtused / loend, mida saab kasutada mõne parameetri 'Lisa' / 'Muuda' abil:

VBA tingimusliku vormindamise näited

Allpool on toodud tingimused Exceli VBA tingimusliku vormindamise kohta.

Näide 1

Oletame, et meil on Exceli fail, mis sisaldab mõne õpilase nime ja märke, ning soovime määrata / esile tõsta märgid rasvase ja sinise värviga, mis on suurem kui 80, ja rasvase ja punase värvina, mis on väiksem kui 50. Vaatame failis sisalduvaid andmeid:

Me kasutame FormatConditions. Selle saavutamiseks lisage funktsioon järgmiselt:

  • Minge arendajale -> Visual Basic Editor:
  • Paremklõpsake töövihiku nimel paanil „Projekt-VBAProject” -> „Sisesta” -> „Moodul”.
  • Nüüd kirjutage kood / protseduur sellesse moodulisse:

Kood:

Alamvorming () Lõpeta alam
  • Määrake muutuja rng, condition1, condition2:

Kood:

Alamvorming () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition End Sub
  • Funktsiooni VBA 'Range' abil määrake / fikseerige vahemik, millelt tingimuslikku vormindamist soovitakse:

Kood:

Alamvormindus () Dim rng Vahemikuna Dim tingimus1 As FormatCondition, tingimus2 As FormatCondition Määra rng = Range ("B2", "B11") Lõpp alam
  • Kustutage / tühjendage vahemikust kõik olemasolevad tingimuslikud vormingud (kui neid on), kasutades valikut „FormatConditions.Delete”:

Kood:

Alamvormindus () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete End Sub
  • Nüüd määrake ja määrake kriteeriumid igale tingimusvormingule, kasutades valikut „FormatConditions.Add”:

Kood:

Alamvorming () Dim rng Vahemikus Dim tingimus1 As FormatCondition, tingimus2 As FormatCondition Määra rng = Range ("B2", "B11") rng.FormatConditions.Delete Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Määra tingimus2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") End Sub
  • Määratlege ja määrake igale tingimusele rakendatav vorming

Kopeerige ja kleepige see kood oma VBA klassi moodulisse.

Kood:

Alamvormindus () 'Muutujate määratlemine: Dim rng As Range Dim tingimus1 As FormatCondition, tingimus2 As FormatCondition' Parandamine / soovitud tingimusliku vormingu vahemiku määramine Määra rng = Range ("B2", "B11") ' kustutage / tühjendage vahemikus rng.FormatConditions.Delete 'olemasolev tingimusvorming Lisa (xlCellValue, xlLess, "= 50") 'Igale tingimusele rakendatava vormingu määratlemine ja määramine tingimusega1 .Font.Color = vbBlue .Font.Bold = Tõeline lõpp tingimusega2 .Font.Color = vbRed .Font. Rasvane = True End with End Sub

Nüüd, kui käivitame selle koodi klahvi F5 abil või käsitsi, näeme, et alla 50 märgid tõstetakse esile rasvases ja punases, samas kui märgid, mis on suuremad kui 80, tõstetakse esile rasvases ja sinises värvitoonis järgmiselt:

Märkus. FormatConditionis kasutatavate vormindatud lahtrite välimuse mõned omadused on:

Näide 2

Oletame, et ülaltoodud näites on meil veel üks veerg, kus on kirjas, et üliõpilane on "Topper", kui ta saab rohkem kui 80 punkti, vastasel juhul on nende vastu kirjutatud Pass / Fail. Nüüd soovime esile tuua väärtused, mis on märgitud kui "Topper" kui paks ja sinine. Vaatame failis olevaid andmeid:

Sel juhul toimiks kood / protseduur järgmiselt:

Kood:

Alamteksti vormindamine () Lõpeta alam

Määratlege ja määrake igale tingimusele rakendatav vorming

Kood:

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

Ülaltoodud koodist näeme, et soovime testida, kas vahemik: 'C2: C11' sisaldab stringi: „Topper”, nii et parameeter: „Onamestor” veerust „Format.Add” viib loendi: “Xcontains” testige seda tingimust fikseeritud vahemikus (st C2: C11) ja seejärel tehke selles vahemikus nõutav tingimuslik vormindamine (fondi muutmine).

Nüüd, kui käivitame selle koodi käsitsi või klahvi F5 vajutades, näeme, et lahtriväärtused 'Topper' abil tõstetakse esile sinise ja rasvase värviga:

Märkus: Niisiis, ülaltoodud kahes näites oleme näinud, kuidas meetod "Lisa" töötab mis tahes lahtri väärtuse kriteeriumide korral (numbriline või tekstistring).

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.
  • Rohkem kui kolme tingimusvormingu rakendamiseks vahemikus meetodi „Lisa” abil võime kasutada valikut „Kui” või „Valige suurtäht”.
  • Kui meetodi „Lisa” parameetri „Type” tüüp on „xlExpression”, ignoreeritakse parameetrit „Operaator”.
  • Parameetrid: „Valem1” ja „Valem2” meetodis „Lisa” võivad olla lahtriviide, konstantväärtus, stringi väärtus või isegi valem.
  • Parameetrit: 'Vormel2' kasutatakse ainult siis, kui parameeter: 'Operaator' on kas 'xlBetween' või 'xlNotBetween', vastasel juhul eiratakse seda.
  • Kõigi tingimusvormingute eemaldamiseks mis tahes töölehelt saame kasutada meetodit Kustuta järgmiselt:
Rakud.VormingTingimused.Kustuta

Huvitavad Artiklid...