Vertaa alueita Excel VBA - Easy Excel -makroissa

Sisällysluettelo

Alla tarkastelemme ohjelmaa Excel VBA että vertaa satunnaisesti valittu alueet ja korostaa ainutlaatuisia soluja. Jos et vielä tunne alueita, suosittelemme, että luet tämän esimerkin ensin.

Tilanne:

Huomautus: Ainoa ainutlaatuinen arvo tässä esimerkissä on 3, koska kaikki muut arvot esiintyvät vähintään yhdellä alueella. Jos haluat valita alueen ("B2: B7, D3: E6, D8: E9"), pidä Ctrl -näppäintä painettuna ja valitse jokainen alue.

Aseta komentopainike laskentataulukkoosi ja lisää seuraavat koodirivit:

1. Ensin ilmoitamme neljä alueobjektia ja kaksi muuttujaa, joiden tyyppi on kokonaisluku.

Himmennettävä alueKäyttääksesi alueena, yksittäinenAlue as Range, solu1 As Range, solu2 As Range, i kokonaislukuna, j kokonaislukuna

2. Alustamme Range -objektialueen rangeToUse valitun alueen kanssa.

Set rangeToUse = Valinta

3. Lisää rivi, joka muuttaa kaikkien solujen taustavärin kohtaan Ei täytettä. Lisää myös rivi, joka poistaa kaikkien solujen reunat.

Solut.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlEi mitään

4. Ilmoita käyttäjälle, kun hän valitsee vain yhden alueen.

Jos Selection.Areas.Count <= 1 Sitten
MsgBox "Valitse useampi kuin yksi alue."
Muu
Loppu Jos

Seuraavat koodirivit (kohdissa 5, 6 ja 7) on lisättävä Else ja End If väliin.

5. Väritä valittujen alueiden solut.

rangeToUse.Interior.ColorIndex = 38

6. Rajaa jokainen alue.

Jokaista yksittäistä aluetta alueella RangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Paino: = xlOhu
Seuraava singleArea

7. Tämän ohjelman loppuosa näyttää tältä.

Sillä i = 1 ToToUse.Areas.Count
Jos j = i + 1 To rangeToUse.Areas.Count
Jokaiselle solulle1 In rangeToUse.Areas (i)
Jokaiselle solulle2 In rangeToUse.Areas (j)
Jos solu1.arvo = solu2.arvo Arvo Sitten
cell1.Interior.ColorIndex = 0
solu2.Interior.ColorIndex = 0
Loppu Jos
Seuraava solu 2
Seuraava solu 1
Seuraava j
Seuraavaksi minä

Selitys: tämä saattaa näyttää hieman ylivoimaiselta, mutta se ei ole niin vaikeaa. rangeToUse.Areas.Count on 3, joten kaksi ensimmäistä koodiriviä pienenevät arvoon i = 1 - 3 ja j = i + 1 - 3. Jos i = 1, j = 2, Excel VBA vertaa kaikkia ensimmäisen alueen arvoja kaikki toisen alueen arvot. Jos i = 1, j = 3, Excel VBA vertaa ensimmäisen alueen kaikkia arvoja kolmannen alueen kaikkiin arvoihin. Jos i = 2, j = 3, Excel VBA vertaa toisen alueen kaikkia arvoja kolmannen alueen kaikkiin arvoihin. Jos arvot ovat samat, se asettaa molempien solujen taustaväriksi Ei täytettä, koska ne eivät ole ainutlaatuisia.

Tulos, kun napsautat taulukon komentopainiketta:

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave