Bereiken vergelijken in Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA Dat vergelijkt willekeurig geselecteerd bereiken en markeert cellen die uniek zijn. Als u nog niet bekend bent met gebieden, raden we u ten zeerste aan om dit voorbeeld eerst te lezen.

Situatie:

Opmerking: de enige unieke waarde in dit voorbeeld is de 3, aangezien alle andere waarden in ten minste één extra gebied voorkomen. Om Range ("B2:B7,D3:E6,D8:E9") te selecteren, houdt u Ctrl ingedrukt en selecteert u elk gebied.

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegels toe:

1. Eerst declareren we vier Range-objecten en twee variabelen van het type Integer.

Dim bereikTe gebruiken als bereik, enkel gebied als bereik, cel1 als bereik, cel2 als bereik, i als geheel getal, j als geheel getal

2. We initialiseren het Range-object rangeToUse met het geselecteerde bereik.

Set rangeToUse = Selectie

3. Voeg de regel toe die de achtergrondkleur van alle cellen verandert in 'Geen opvulling'. Voeg ook de regel toe die de randen van alle cellen verwijdert.

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

4. Informeer de gebruiker wanneer hij of zij slechts één gebied selecteert.

Als Selectie.Gebieden.Aantal <= 1 Dan
MsgBox "Selecteer meer dan één gebied."
Anders
Stop als

De volgende coderegels (bij 5, 6 en 7) moeten tussen Else en End If worden toegevoegd.

5. Kleur de cellen van de geselecteerde gebieden.

rangeToUse.Interior.ColorIndex = 38

6. Grens elk gebied.

Voor elk afzonderlijk Gebied In bereikToUse.Areas
singleArea.BorderAround ColorIndex:=1, Gewicht:=xlThin
Volgende singleArea

7. De rest van dit programma ziet er als volgt uit.

Voor i = 1 Naar bereikToUse.Areas.Count
Voor j = i + 1 Naar bereikToUse.Areas.Count
Voor elke cel1 In bereikToUse.Areas(i)
Voor elke cel2 In bereikToUse.Areas(j)
Als cel1.Waarde = cel2.Waarde Dan
cell1.Interieur.ColorIndex = 0
cell2.Interior.ColorIndex = 0
Stop als
Volgende cel2
Volgende cel1
volgende j
volgende i

Uitleg: dit ziet er misschien wat overweldigend uit, maar het is niet zo moeilijk. rangeToUse.Areas.Count is gelijk aan 3, dus de eerste twee coderegels verminderen tot For i = 1 tot 3 en For j = i + 1 tot 3. Voor i = 1, j = 2 vergelijkt Excel VBA alle waarden van het eerste gebied met alle waarden van het tweede gebied. Voor i = 1, j = 3 vergelijkt Excel VBA alle waarden van het eerste gebied met alle waarden van het derde gebied. Voor i = 2, j = 3 vergelijkt Excel VBA alle waarden van het tweede gebied met alle waarden van het derde gebied. Als de waarden hetzelfde zijn, wordt de achtergrondkleur van beide cellen ingesteld op 'Geen opvulling', omdat ze niet uniek zijn.

Resultaat wanneer u op de opdrachtknop op het werkblad klikt:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave