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
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 Kokonaisluku2. Alustamme Range -objektialueen rangeToUse valitun alueen kanssa.
AsetarangeToUse = Valinta3. Lisää rivi, joka muuttaa kaikkien solujen taustavärin kohtaan Ei täyttöä. Lisää myös rivi, joka poistaa kaikkien solujen reunat.
Solut.Interior.ColorIndex = 0Cells.Borders.LineStyle = xlEi mitään
4. Ilmoita käyttäjälle, kun hän valitsee vain yhden alueen.
JosValinta. Alueet<= 1 SittenMsgBox '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 = 386. Rajaa jokainen alue.
Varten JokainensingleAreaSisäänrangeToUse.AreassingleArea.BorderAround ColorIndex: = 1, Paino: = xlOhu
SeuraavasingleArea
7. Tämän ohjelman loppuosa näyttää tältä.
Varteni = 1VastaanottajarangeToUse.Areas.CountVartenj = 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:
Siirry seuraavaan lukuun: Muuttujat