Usporedite raspone u Excelu VBA - Jednostavni makroni Excel

Sadržaj

U nastavku ćemo pogledati program u Excel VBA da uspoređuje nasumično odabrane rasponi i ističe stanice koje su jedinstvene. Ako još niste upoznati s područjima, toplo vam preporučujemo da prvo pročitate ovaj primjer.

Situacija:

Napomena: jedina jedinstvena vrijednost u ovom primjeru je 3 jer se sve ostale vrijednosti pojavljuju u barem još jednom području. Za odabir raspona ("B2: B7, D3: E6, D8: E9"), pritisnite Ctrl i odaberite svako područje.

Postavite naredbeni gumb na radni list i dodajte sljedeće retke koda:

1. Prvo, deklariramo četiri Range objekta i dvije varijable tipa Integer.

Dim rangeToUse As Range, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer

2. Inicijaliziramo Range objekt rangeToUse s odabranim rasponom.

Postavi rangeToUse = Odabir

3. Dodajte redak koji mijenja boju pozadine svih ćelija u "Bez ispune". Dodajte i liniju koja uklanja granice svih ćelija.

Ćelije.Interijer.Indeks boje = 0
Stanice.Granice.LineStyle = xlNone

4. Obavijestite korisnika kada odabere samo jedno područje.

Ako je Selection.Areas.Count <= 1 Tada
MsgBox "Odaberite više od jednog područja."
Drugo
Završi ako

Sljedeći retci koda (na 5, 6 i 7) moraju se dodati između Else i End If.

5. Obojite ćelije odabranih područja.

rangeToUse.Interior.ColorIndex = 38

6. Ograničite svako područje.

Za svako pojedinačno područje U rasponuToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Weight: = xlThin
Sljedeće singl područje

7. Ostatak ovog programa izgleda ovako.

Za i = 1 Za rasponToUse.Areas.Count
Za j = i + 1 Za rasponToUse.Areas.Count
Za svaku ćeliju1 U rasponuToUse.Areas (i)
Za svaku ćeliju2 U rasponuToUse.Areas (j)
Ako je ćelija1.Vrijednost = ćelija2.Vrijednost Zatim
ćelija1.Interijer.Indeks boje = 0
ćelija2.Interijer.Indeks boje = 0
Završi ako
Sljedeća ćelija 2
Sljedeća ćelija 1
Sljedeće j
Sljedeći i

Objašnjenje: ovo može izgledati pomalo neodoljivo, ali nije tako teško. rangeToUse.Areas.Count jednako je 3, pa se prve dvije linije koda svode na Za i = 1 do 3 i Za j = i + 1 do 3. Za i = 1, j = 2, Excel VBA uspoređuje sve vrijednosti prvog područja sa svim vrijednostima drugog područja. Za i = 1, j = 3, Excel VBA uspoređuje sve vrijednosti prvog područja sa svim vrijednostima trećeg područja. Za i = 2, j = 3, Excel VBA uspoređuje sve vrijednosti drugog područja sa svim vrijednostima trećeg područja. Ako su vrijednosti iste, boja pozadine obje ćelije postavlja se na 'Bez popunjavanja', jer nisu jedinstvene.

Rezultat kada pritisnete naredbeni gumb na listu:

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave