Ehdollisen muotoilun tekeminen VBA: n avulla Microsoft Excelissä

Sisällysluettelo

Maalataan Monalisa -maalaus ja jätetään Picasso taakse VBA: n avulla. Valmiina, valmistaudu…

Odota! Odota! Rauhoitu. Aiomme vain käyttää VBA: ta ehdollisen muotoilun tekemiseen, ja se on helpompaa kuin maalaus? muotoinen lintu.

VBA: n ehdollisen muotoilun yleinen syntaksi

Jos ehto kuin alue (alue) .Interior.ColorIndex = 1-56

Anna tilatarkastukselle ehto ja muotoile sitten alue käyttämällä Range -objektin ominaisuutta .iteriour.colorindex. Väriluettelossa on 56 väriä. Pelaa heidän kanssaan Holia ja selvitä, mikä numero pitää minkä värin.
Ymmärrämme sen nyt esimerkin avulla

Esimerkki: VBA -koodi solujen ehdolliseen muotoiluun

Joten tämä on skenaario, meillä on luettelo satunnaisista ihmisistä iän ja ikäryhmän mukaan.
Kuinka helppoa se olisikaan, jos voisi kertoa henkilön ikäryhmälle vain katsomalla hänen nimeään.
Nyt haluan tehdä tämän, haluan VBA -muodon NIMI PUNAINEN, jos hän on aikuinen, KELTAINEN, jos hän on teini -ikäinen, ja VIHREÄ, jos hän on lapsi, eikä mitään, jos solu on tyhjä.

Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Solut (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Jokaiselle solulle In rng If solu. Arvo2 = "Aikuinen" Sitten Alue (solu.Address) .Siirto (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Silloin alue (solu.Address) .Siirto (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teini" Silloin alue (solu.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Lopeta, jos seuraava solu Lopeta ala

Jos haluat suorittaa tämän koodin suoraan taulukosta, olen piirtänyt painikkeen samaan arkkiin ja määrittänyt tämän makron sille. Nyt kun napsautat "Muotoile" -painiketta, koodisi suoritetaan ja päivittää nimisolut värillä niiden ikäryhmän mukaan. Miten? Otetaan selvää.

Koodin selitys:

Dim rng as RangeDim lastRow as Long Nämä kaksi riviä ovat muuttujia. rng alueelle, jolla on ikäryhmä ja lastRow, jotta saadaan viimeinen tyhjä rivinumero. 
lastRow = Solut (Rows.Count, 3). End (xlUp). RowThis rivi palauttaa lastRow Variablein viimeisen rivin numeron.
Set rng = Range ("C2: C" & lastRow) Tämä rivi asettaa alueen, joka alkaa C2: sta viimeiseen riviin. Se tekee koodistasi dynaamisen. Kun lisäät tietoihisi uusia rivejä, se havaitsee ja tallentaa rng -muuttujan uudelle alueelle.
Jokaiselle solulle In rng If cell.Value2 = "Aikuinen" Silloin alue (solu.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Silloin alue (solu.osoite). Siirtymä (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teini" Sitten alue (solu.Address) .Siirto (0, -2) .Interior.ColorIndex = 6 Muu alue (solu.Address). Siirtymä (0, -2) .Interior.ColorIndex = 0 Lopeta, jos seuraava solu 

Tämä on pääsegmentti.

Jokaista solua kohti 

Ensimmäinen rivi suorittaa silmukan kaikille alueen soluille. If cell.Value2 = "Aikuinen" Sitten
Seuraava rivi on kunnon tarkistus. Se tarkistaa, onko nykyinen solun arvo aikuinen vai ei.
Jos kyllä, seuraava rivi kulkee, muuten se siirtyy seuraavaan if -lauseeseen. Range (solu.Address). Offset (0, -2).
Jos JOS -ehto palauttaa TOSI, tämä rivi asettaa solun värin ColorIndex 3: ksi, joka on PUNAINEN.

Samoin seuraavat IF -käskyt suoritetaan ja toimivat ohjeiden mukaisesti.

Joten kyllä, voit muotoilla alueita ehdollisesti VBA: n avulla. Range -objektin sisäinen menetelmä ohjaa monia muita muotoiluominaisuuksia. Sinun pitäisi leikkiä heidän kanssaan, se ei tee haittaa, mutta opit varmasti. Ja jos kohtaat vaikeuksia kuin mitä minä olen täällä. Esitä kysymyksesi kommenttiosiossa.

Lataa tiedosto

Ehdollinen muotoilu VBA: n avulla Microsoft Excelissä

Suosittuja artikkeleita:

50 Excel -pikanäppäintä tuottavuuden lisäämiseksi

VLOOKUP -toiminnon käyttäminen Excelissä

COUNTIF -toiminnon käyttäminen Excelissä

SUMIF -toiminnon käyttäminen Excelissä

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave