Spodaj si bomo ogledali program v Excel VBA to primerja naključno izbrano razponi in poudarja edinstvene celice. Če niste seznanjeni območja vseeno vam priporočamo, da najprej preberete ta primer.
Situacija:
preštej število dni med dvema datumoma v excelu
Opomba: edina edinstvena vrednost v tem primeru je 3, saj se vse druge vrednosti pojavljajo na vsaj še enem področju. Če želite izbrati obseg ('B2: B7, D3: E6, D8: E9'), pridržite tipko Ctrl in izberite vsako področje.
Postavite a ukazni gumb na delovnem listu in dodajte naslednje kodne vrstice:
1. Najprej razglasimo štiri objekte Range in dve spremenljivki tipa Integer.
NobenarangeToUseAsRazpon, singleAreaAsObseg, celica 1AsObseg, celica 2AsRazpon, tjAs Celo število, jAs Celo število2. Inicializiramo Range object rangeToUse z izbranim obsegom.
NastavljenorangeToUse = Izbor3. Vrstico, ki spremeni barvo ozadja vseh celic, dodajte v 'Brez zapolnitve'. Dodajte tudi vrstico, ki odstrani meje vseh celic.
Celice.Interior.ColorIndex = 0Celice.Borders.LineStyle = xlNone
4. Obvestite uporabnika, ko izbere samo eno področje.
ČeSelection.Areas.Count<= 1 PotemMsgBox 'Izberite več področij.'
Sicer pa
Konec Če
Naslednje kodne vrstice (pri 5, 6 in 7) je treba dodati med Else in End If.
5. Obarvajte celice izbranih območij.
rangeToUse.Interior.ColorIndex = 386. Obrobite vsako območje.
Za VsaksingleAreaVrangeToUse.AreassingleArea.BorderAround ColorIndex: = 1, Teža: = xlThin
NaslednjisingleArea
7. Preostanek tega programa je videti na naslednji način.
Zai = 1ZarangeToUse.Areas.CountZaj = i + 1ZarangeToUse.Areas.Count
Za Vsakcelica 1VrangeToUse.Areas (i)
Za Vsakcelica 2VrangeToUse.Areas (j)
Čecelica1.Vrednost = celica2.VrednostPotem
celica 1.Interior.ColorIndex = 0
celica2.Interior.ColorIndex = 0
Konec Če
Naslednjicelica 2
Naslednjicelica 1
Naslednjij
Naslednjijaz
Pojasnilo: Morda bo videti nekoliko premočno, vendar ni tako težko. rangeToUse.Areas.Count je enako 3, zato se prvi dve kodni vrstici zmanjšata na For i = 1 do 3 in For j = i + 1 do 3. Za i = 1, j = 2, Excel VBA primerja vse vrednosti prvega območja. z vsemi vrednostmi drugega območja. Za i = 1, j = 3 Excel VBA primerja vse vrednosti prvega območja z vsemi vrednostmi tretjega območja. Za i = 2, j = 3 Excel VBA primerja vse vrednosti drugega območja z vsemi vrednostmi tretjega področja. Če so vrednosti enake, barva ozadja obeh celic nastavi na 'No Fill', ker nista edinstveni.
uporabi pogojno oblikovanje za več celic
Rezultat, ko kliknete ukazni gumb na listu:
Pojdi na naslednje poglavje: Spremenljivke