Nacrtajmo sliku Monalise i ostavimo Picassa iza sebe koristeći VBA. Spremni, pripremite se…
Čekati! Čekati! Uspori malo. Upravo ćemo koristiti VBA za uvjetno oblikovanje, a to je lakše nego slikati to? oblikovana ptica.
Opća sintaksa VBA uvjetnog oblikovanja
Ako je uvjet nego Raspon (raspon). Unutrašnjost.Indeks boje = 1-56
Provjerite stanje u stanju, a zatim formatirajte raspon pomoću svojstva .iteriour.colorindex objekta Range. Indeks boja ima 56 boja. Idite igrati Holi s njima i istražite koji broj ima koju boju.
Sada to shvatimo primjerom
Primjer: VBA kôd za uvjetno oblikovanje ćelija
Dakle, ovo je scenarij, imamo popis slučajnih ljudi s njihovom dobi i dobnom skupinom.
Kako bi bilo jednostavno kad biste mogli reći dobnoj skupini osobu samo gledajući njihova imena.
Kako bih to učinio, želim VBA format Naziv CRVENO ako je punoljetan, ŽUTO ako je tinejdžer i ZELENO ako je KLIJED i ništa ako je ćelija prazna.
PodformatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Cells (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Za svaku ćeliju U rng If ćeliji. Value2 = "Adult" Zatim Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Zatim Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Zatim raspon (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 End If Next cell End Sub
Da bih pokrenuo ovaj kôd izravno iz lista, nacrtao sam gumb na istom listu i dodijelio mu ovaj makro. Sada, kad god pritisnete gumb "Oblikovanje", vaš će se kôd pokrenuti i ažurirati ćelije s imenom u boji ovisno o njihovoj dobnoj skupini. Kako? Hajde da vidimo.
Objašnjenje koda:
Dim rng As RangeDim lastRow As LongOva dva retka su deklaracije varijabli. rng za Raspon koji sadrži dobnu skupinu i lastRow za dobivanje posljednjeg broja praznog retka.
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowOvaj redak vraća broj zadnjeg retka u varijabli lastRow.
Postavi rng = Raspon ("C2: C" & lastRow) Ovaj redak postavlja raspon počevši od C2 do posljednjeg retka. To čini vaš kôd dinamičnim. Dodajete nove retke svojim podacima i on će otkriti i spremiti u novi raspon u rng varijablu.
Za svaku ćeliju U rng If cell.Value2 = "Adult" Zatim Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Zatim Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Zatim raspon (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address). Odmak (0, -2). Unutrašnjost.Indeks boje = 0 Kraj Ako je sljedeća ćelija
Ovo je glavni segment.
Za svaku ćeliju U rng
Prvi redak vodi petlju do svih ćelija u vašem rasponu. Ako cell.Value2 = "Odrasli" Tada
Sljedeći redak je provjera stanja. Provjerava je li trenutna vrijednost ćelije Adult ili ne.
Ako da, tada se pokreće sljedeći redak, inače preskače na sljedeći if naredbu.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Sada, ako IF uvjet vrati TRUE, tada ovaj redak postavlja boju ćelije na ColorIndex 3 za RED.
Slično slijedeći IF izrazi pokreću se i poduzimaju radnje kako je navedeno.
Dakle, da, možete uvjetno oblikovati raspone pomoću VBA. Interna metoda Range objekta kontrolira mnoga druga svojstva za oblikovanje. Trebate se igrati s njima, neće vam naškoditi, ali ćete sigurno naučiti. A ako se suočite s bilo kakvom poteškoćom od onoga zbog čega sam ovdje. Postavite svoja pitanja u odjeljku za komentare.
Preuzmi datoteku
Uvjetno oblikovanje pomoću VBA u programu Microsoft ExcelPopularni članci:
50 Excel prečaca za povećanje vaše produktivnosti
Kako koristiti funkciju VLOOKUP u Excelu
Kako koristiti funkciju COUNTIF u Excelu
Kako koristiti funkciju SUMIF u Excelu