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 ExcelisPopulaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks
Funktsiooni VLOOKUP kasutamine Excelis
Funktsiooni COUNTIF kasutamine Excelis
Funktsiooni SUMIF kasutamine Excelis