300 Esimerkkejä

Vertaa alueita

Compare Ranges

Alla tarkastelemme ohjelmaa Excel VBA että vertaa satunnaisesti valittu alueet ja korostaa ainutlaatuisia soluja. Jos et ole perehtynyt alueilla suosittelemme kuitenkin, että luet tämän esimerkin ensin.





Tilanne:

excel-laskunumerot alueella

Vertaa alueita Excel VBA: ssa





Huomaa: 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 a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:



1. Ensin ilmoitamme neljä Range -objektia ja kaksi muuttujaa, joiden tyyppi on Integer.

Ei mitäänrangeToUseKutenAlue, singleAreaKutenAlue, solu 1KutenAlue, solu2KutenAlue, tsKuten Kokonaisluku, jKuten Kokonaisluku

2. Alustamme Range -objektialueen rangeToUse valitun alueen kanssa.

AsetarangeToUse = Valinta

3. Lisää rivi, joka muuttaa kaikkien solujen taustavärin kohtaan Ei täyttöä. 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.

JosValinta. Alueet<= 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.

Varten JokainensingleAreaSisäänrangeToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Paino: = xlOhu
SeuraavasingleArea

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

Varteni = 1VastaanottajarangeToUse.Areas.Count
Vartenj = i + 1VastaanottajarangeToUse.Areas.Count
Varten Jokainensolu 1SisäänrangeToUse.Areas (i)
Varten Jokainensolu2SisäänrangeToUse.Areas (j)
Jossolu1.arvo = solu2.arvoSitten
cell1.Interior.ColorIndex = 0
solu2.Interior.ColorIndex = 0
Loppu Jos
Seuraavasolu2
Seuraavasolu 1
Seuraavaj
Seuraavai

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.

kuinka tehdä absoluuttinen soluviittaus Excelissä

Tulos, kun napsautat taulukon komentopainiketta:

Vertaa alueita Tulos

14/14 valmis! Lisätietoja alueobjektista>
Siirry seuraavaan lukuun: Muuttujat



^