Naslikajmo sliko Monalisa in pustimo Picassa za VBA. Pripravljeni, nastavite se…
Počakaj! Počakaj! Držite konje. VBA bomo uporabili le za pogojno oblikovanje in to je lažje kot slikanje? oblikovana ptica.
Splošna skladnja pogojnega oblikovanja VBA
Če je stanje kot Range (range) .Interior.ColorIndex = 1-56
Preverite stanje in nato formatirajte obseg z lastnostjo .iteriour.colorindex predmeta Range. Barvni indeks ima 56 barv. Pojdi se z njimi igrati Holi in razišči, katera številka ima katero barvo.
Zdaj pa razumejmo s primerom
Primer: Koda VBA za pogojno oblikovanje celic
Torej, to je scenarij, imamo seznam naključnih ljudi z njihovo starostjo in starostno skupino.
Kako enostavno bi bilo, če bi starostni skupini lahko povedali samo s pogledom na njihova imena.
Če želite to narediti, želim format VBA Rdeče, če je odrasel, RUMENO, če je najstnik, in ZELENO, če je otrok in nič, če je celica prazna.
PodoblikUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Za vsako celico V celici rng If. Value2 = "Adult" Potem Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Potem Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Potem Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 Konec Če Naslednja celica Konec Sub
Za zagon te kode neposredno z lista sem na isti list narisal gumb in mu dodelil ta makro. Zdaj, ko kliknete gumb »Oblika«, se bo koda zagnala in posodobila imenske celice z barvo glede na njihovo starostno skupino. Kako? Pa ugotovimo.
Koda Pojasnilo:
Dim rng As RangeDim lastRow As Long Ti dve vrstici sta deklaraciji spremenljivk. rng za Range, ki vsebuje starostno skupino in lastRow, da dobite zadnjo številko vrstice, ki ni prazna.
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowTa vrstica vrne številko zadnje vrstice v spremenljivki lastRow.
Set rng = Range ("C2: C" & lastRow) Ta vrstica nastavi obseg od C2 do zadnje vrstice. Zaradi tega je vaša koda dinamična. Podatkom dodate nove vrstice, ki bodo zaznale in shranile v nov obseg v spremenljivki rng.
Za vsako celico V rng If cell.Value2 = "Adult" Potem Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Potem Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Potem Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 End If Next celica
To je glavni segment.
Za vsako celico V rng
Prva vrstica vodi zanko do vseh celic v vašem obsegu. Če cell.Value2 = "Odrasla" Potem
Naslednja vrstica je preverjanje stanja. Preverja, ali je trenutna vrednost celice Adult ali ne.
Če je odgovor pritrdilen, se zažene naslednja vrstica, sicer preskoči na naslednji stavek if.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Zdaj, če pogoj IF vrne TRUE, potem ta vrstica nastavi barvo celice na ColorIndex 3, ki je za RDEČO.
Podobno sledijo stavki IF in delujejo, kot je določeno.
Torej, ja, lahko pogojno oblikujete obsege z uporabo VBA. Notranja metoda predmeta Range nadzoruje številne druge lastnosti oblikovanja. Igrati se morate z njimi, ne bo škodilo, vsekakor pa se boste naučili. In če se soočite s kakšno težavo, zaradi katere sem tukaj. Vprašanja postavite v razdelku za komentarje.
Prenesite datoteko
Pogojno oblikovanje z uporabo VBA v programu Microsoft ExcelPriljubljeni članki:
50 bližnjic v Excelu za večjo produktivnost
Kako uporabljati funkcijo VLOOKUP v Excelu
Kako uporabljati funkcijo COUNTIF v Excelu
Kako uporabljati funkcijo SUMIF v Excelu