Salīdziniet diapazonus programmā Excel VBA - viegli Excel makro

Satura rādītājs

Zemāk mēs apskatīsim programmu Excel VBA ka salīdzina nejauši izvēlēts diapazoni un izceļ šūnas, kas ir unikālas. Ja jūs vēl neesat pazīstams ar jomām, mēs ļoti iesakām vispirms izlasīt šo piemēru.

Situācija:

Piezīme: šajā piemērā vienīgā unikālā vērtība ir 3, jo visas pārējās vērtības ir vismaz vēl vienā apgabalā. Lai atlasītu diapazonu ("B2: B7, D3: E6, D8: E9"), turiet nospiestu Ctrl un atlasiet katru apgabalu.

Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

1. Pirmkārt, mēs deklarējam četrus diapazona objektus un divus Integer tipa mainīgos.

Dim diapazons Lai izmantotu kā diapazonu, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer

2. Mēs inicializējam Range objekta rangeToUse ar izvēlēto diapazonu.

Set rangeToUse = Atlase

3. Pievienojiet rindu, kas maina visu šūnu fona krāsu, uz “No Fill”. Pievienojiet arī rindu, kas noņem visu šūnu robežas.

Šūnas.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlNone

4. Informējiet lietotāju, kad viņš vai viņa izvēlas tikai vienu apgabalu.

Ja Selection.Areas.Count <= 1 Tad
MsgBox "Lūdzu, atlasiet vairāk nekā vienu apgabalu."
Citādi
Beigas Ja

Nākamās koda rindiņas (pie 5., 6. un 7.) jāpievieno starp citu un beigu Ja.

5. Izkrāsojiet atlasīto apgabalu šūnas.

rangeToUse.Interior.ColorIndex = 38

6. Robežojiet katru apgabalu.

Katram atsevišķam apgabalam diapazonāToUse.Areas
singleArea.BorderAround ColorIndex: = 1, svars: = xlThin
Nākamais singlsArea

7. Pārējā šīs programmas daļa izskatās šādi.

Attiecībā uz i = 1 līdz diapazonamToUse.Areas.Count
J = i + 1 Lai diapazonsToUse.Areas.Count
Katrai šūnai1 In rangeToUse.Areas (i)
Katrai šūnai2 diapazonāToUse.Areas (j)
Ja šūna1.Vērtība = šūna2.Vēra Tad
šūna1.Interior.ColorIndex = 0
šūna2.Interior.ColorIndex = 0
Beigas Ja
Nākamā šūna 2
Nākamā šūna 1
Nākamais j
Tālāk i

Paskaidrojums: tas var izskatīties mazliet satriecoši, taču tas nav tik grūti. rangeToUse.Areas.Count ir vienāds ar 3, tāpēc pirmās divas koda rindas tiek samazinātas līdz i = 1 līdz 3 un j = i + 1 līdz 3. Ja i = 1, j = 2, Excel VBA salīdzina visas pirmā apgabala vērtības ar visām otrā apgabala vērtībām. Ja i = 1, j = 3, Excel VBA salīdzina visas pirmā apgabala vērtības ar visām trešā apgabala vērtībām. Ja i = 2, j = 3, Excel VBA salīdzina visas otrā apgabala vērtības ar visām trešā apgabala vērtībām. Ja vērtības ir vienādas, abu šūnu fona krāsa tiek iestatīta uz “No Fill”, jo tās nav unikālas.

Rezultāts, noklikšķinot uz komandas pogas lapā:

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave