VBA tingimuslik vormindamine | Rakendage tingimusvormingut VBA Exceli abil

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 funktsioonil Add on 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.
  • Valem 2: 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 tingimusliku vormindamise kohta excelis vba.

Selle VBA tingimusliku vormindamise malli saate alla laadida siit - VBA tingimusliku vormindamise mall

Näide 1

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

Selle saavutamiseks kasutame funktsiooni FormatConditions.Add järgmiselt:

  • Minge arendajale -> Visual Basic Editor:

  • Paremklõpsake paanil 'Project-VBAProject' -> 'Lisa' -> 'Moodul' töövihiku nimel.

  • 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 As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") End Sub 

  • Kustutage / tühjendage vahemikust kõik olemasolevad tingimusvormingud (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 / kustutage kõik olemasolevad tingimusvormingud vahemikust rng.FormatConditions.Delete 'Iga tingimusvormingu kriteeriumide määratlemine ja määramine Määra tingimus1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80") Määra tingimus2 = rng.FormatConditions. 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 klahviga F5 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

Ütleme, et ülaltoodud näites on meil veel üks veerg, kus on öeldud, et õpilane on "Topper", kui ta saab rohkem kui 80 hinde, vastasel juhul kirjutatakse nende vastu Pass / Fail. Nüüd soovime esile tuua väärtused, mis on märgitud kui "Topper" kui paks ja sinine. Vaatame failis sisalduvaid 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: „Operator“ vormingus „Format.Add“ võtab loendi: selle tingimuse testimiseks 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).

Allpool on mõned muud eksemplarid / kriteeriumid, mida saab kasutada VBA tingimusliku vormingu testimiseks ja rakendamiseks:

  • Vormindage ajaperioodi järgi
  • Keskmine seisund
  • Värviskaala seisund
  • IconSet tingimus
  • Andmebaari olek
  • Ainulaadsed väärtused
  • Väärtuste dubleerimine
  • Top10 väärtused
  • Protsentiili seisund
  • Tühjad seisundid jne

Erinevate katsetatavate tingimuste korral võetakse „Add” parameetritega erinevad väärtused / loend.

Mida tuleb meeles pidada VBA tingimusliku vormindamise kohta

  • Uue tingimusliku vormingu loomiseks kasutatakse meetodit „Lisa” koos vorminguga „FormatConditions”, mis tahes tingimusliku vormingu kustutamiseks meetodit „Kustuta” ja olemasoleva tingimusliku vormingu muutmiseks meetodit „Muuda”.
  • Meetod 'Lisa' koos 'FormatConditions Collection'iga ebaõnnestub, kui ühe vahemiku jaoks on loodud rohkem kui kolm tingimuslikku vormingut.
  • Rohkem kui kolme tingimusvormingu rakendamiseks vahemikus meetodi „Lisa” abil võime kasutada valikut „Kui” või „Valige väiketäht”.
  • Kui meetodi „Lisa” parameetri „Type” tüüp on „xLExpression”, siis parameetrit „Operaator” eiratakse.
  • 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 ignoreeritakse seda.
  • Kõigi tingimusvormingute eemaldamiseks mis tahes töölehelt võime kasutada meetodit Kustuta järgmiselt:
Rakud.VormingTingimused.Kustuta

$config[zx-auto] not found$config[zx-overlay] not found