Tingimusvormingu tegemine Microsoft Excelis VBA abil

Anonim

Värvime Monalisa maali ja jätame Picasso maha VBA abil. Valmis, pange paika…

Oota! Oota! Hoidke oma hobuseid. Kasutame lihtsalt VBA -d tingimusvormingu tegemiseks ja see on lihtsam kui maalimine? kujuga lind.

VBA tingimusvormingu üldine süntaks

Kui tingimus kui vahemik (vahemik). Interjöör. Värviindeks = 1–56

Kontrollige oma seisundit ja vormindage oma vahemik objekti Range atribuudi .iteriour.colorindex abil. Värviindeksis on 56 värvi. Minge nendega Holi mängima ja uurige, milline number millist värvi hoiab.
Nüüd mõistame seda näitega

Näide: VBA kood lahtrite tingimuslikuks vormindamiseks

Niisiis, see on stsenaarium, meil on juhuslike inimeste nimekiri nende vanuse ja vanuserühmaga.
Kui lihtne see oleks, kui saaks vanuserühmale inimesele lihtsalt nime vaadata.
Nüüd tahan selleks VBA -vormingut NIMI PUNANE, kui ta on täiskasvanu, KOLLANE, kui ta on teismeline, ja ROHELINE, kui ta on LAST, ja mitte midagi, kui lahter on tühi.

AlamvormingUsingVBA () Dim rng kui vahemik Dim lastRow As Long lastRow = Lahtrid (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Iga lahtri jaoks In rng If cell. Väärtus2 = "Täiskasvanud" Siis vahemik (lahter.Aadress) .Lülitus (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Siis vahemik (cell.Address) .Väljas (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 0 End If Next cell End Sub

Selle koodi käivitamiseks otse lehelt olen joonistanud samale lehele nupu ja määranud sellele makro. Nüüd, kui klõpsate nupul „Vorminda”, käivitub teie kood ja värskendab nimerakke värviga sõltuvalt nende vanuserühmast. Kuidas? Uurime välja.

Koodi selgitus:

Dim rng As RangeDim lastRow As Long Need kaks rida on muutujadeklaratsioonid. rng vahemiku jaoks, mis sisaldab vanuserühma ja lastRow, et saada viimane tühi rea number. 
lastRow = Lahtrid (Rows.Count, 3). End (xlUp). RowThis rida tagastab lastRow Variable viimase rea numbri.
Set rng = Range ("C2: C" & lastRow) See rida määrab vahemiku alates C2 kuni viimase rea. See muudab teie koodi dünaamiliseks. Lisate oma andmetele uued read ja see tuvastab ja salvestab muutuja rng uues vahemikus.
Iga lahtri jaoks rng Kui lahter.Väärtus2 = "Täiskasvanu" Siis Vahemik (lahter.Aadress) .Väljund (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Siis vahemik (cell.Address). Nihe (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Nihe (0, -2). Interior.ColorIndex = 0 Lõpp kui järgmine lahter 

See on peamine segment.

Iga lahtri jaoks rng 

Esimene rida käivitab silmuse kõikidesse teie vahemiku lahtritesse. Kui cell.Value2 = "Täiskasvanu" Siis
Järgmine rida on seisundikontroll. See kontrollib, kas praegune lahtri väärtus on täiskasvanu või mitte.
Kui jah, siis järgmine rida jookseb, muidu liigub see järgmise avaldise juurde. Range (cell.Address). Offset (0, -2). Interior.ColorIndex = 3
Kui IF tingimus tagastab tõe, määrab see rida lahtri värviks ColorIndex 3, mis on punane.

Sarnaselt järgnevad IF -laused töötavad ja tegutsevad vastavalt juhistele.

Nii et jah, saate vahemikke tinglikult vormindada, kasutades VBA -d. Range objekti sisemeetod juhib paljusid muid vormindamise omadusi. Peaksite nendega mängima, see ei tee mingit kahju, kuid õpid kindlasti. Ja kui teil on mingeid raskusi, kui see, mille pärast ma siin olen. Küsige oma küsimusi kommentaaride jaotises.

Laadige fail alla

Tingimuslik vormindamine VBA abil Microsoft Excelis

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks

Funktsiooni VLOOKUP kasutamine Excelis

Funktsiooni COUNTIF kasutamine Excelis

Funktsiooni SUMIF kasutamine Excelis