300 Primerov

Primerjajte razpone

Compare Ranges

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

Primerjajte obsege v Excelu VBA





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 število

2. Inicializiramo Range object rangeToUse z izbranim obsegom.

NastavljenorangeToUse = Izbor

3. Vrstico, ki spremeni barvo ozadja vseh celic, dodajte v 'Brez zapolnitve'. Dodajte tudi vrstico, ki odstrani meje vseh celic.

Celice.Interior.ColorIndex = 0
Celice.Borders.LineStyle = xlNone

4. Obvestite uporabnika, ko izbere samo eno področje.

ČeSelection.Areas.Count<= 1 Potem
MsgBox '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 = 38

6. Obrobite vsako območje.

Za VsaksingleAreaVrangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Teža: = xlThin
NaslednjisingleArea

7. Preostanek tega programa je videti na naslednji način.

Zai = 1ZarangeToUse.Areas.Count
Zaj = 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:

Primerjaj rezultate dosegov

14/14 Dokončano! Več o objektu obsega>
Pojdi na naslednje poglavje: Spremenljivke



^