Tartományok összehasonlítása Excel VBA - Egyszerű Excel makrókban

Tartalomjegyzék

Az alábbiakban megnézzük a programot Excel VBA hogy összehasonlítja véletlenszerűen kiválasztott tartományok és kiemeli az egyedülálló sejteket. Ha még nem ismeri a területeket, javasoljuk, hogy először olvassa el ezt a példát.

Helyzet:

Megjegyzés: ebben a példában az egyetlen egyedi érték a 3, mivel az összes többi érték legalább egy további területen fordul elő. A Tartomány ("B2: B7, D3: E6, D8: E9") kiválasztásához tartsa lenyomva a Ctrl billentyűt, és válassza ki az egyes területeket.

Helyezzen el egy parancsgombot a munkalapon, és adja hozzá a következő kódsorokat:

1. Először négy Range objektumot és két Integer típusú változót deklarálunk.

Dim tartomány: Használat tartományként, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer

2. Inicializáljuk a Range objektum tartománytToUse a kiválasztott tartományt.

RangeToUse = Kiválasztás

3. Adja hozzá az összes cella háttérszínét megváltoztató sort a „Nincs kitöltés” ​​értékhez. Adja hozzá azt a sort is, amely eltávolítja az összes cella szegélyét.

Cella.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlNone

4. Tájékoztassa a felhasználót, ha csak egy területet választ ki.

Ha Selection.Areas.Count <= 1 Akkor
MsgBox "Kérjük, válasszon ki több területet."
Más
Vége Ha

A következő kódsorokat (az 5., 6. és 7. helyen) az Else és az If End között kell hozzáadni.

5. Színezze ki a kijelölt területek celláit.

rangeToUse.Interior.ColorIndex = 38

6. Határozza meg az egyes területeket.

Minden egyes területhezA tartományToUse.Areas
singleArea.BorderAround ColorIndex: = 1, Súly: = xlVékony
Következő kislemezArea

7. A program többi része a következőképpen néz ki.

I = 1 esetén A tartományToUse.Areas.Count
J = i + 1 esetén A tartományToUse.Areas.Count
Minden cellához1 In rangeToUse.Areas (i)
Minden cellához2 In rangeToUse.Areas (j)
Ha cella1.Érték = cella2.Érték Akkor
cell1.Interior.ColorIndex = 0
cella2.Belső.SzínIndex = 0
Vége Ha
Következő cella 2
Következő cella1
Következő j
Következő i

Magyarázat: ez kissé lehengerlőnek tűnhet, de nem olyan nehéz. rangeToUse.Areas.Count 3, tehát az első két kódsor i a második terület összes értékével. Az i = 1, j = 3 esetén az Excel VBA összehasonlítja az első terület összes értékét a harmadik terület összes értékével. I = 2, j = 3 esetén az Excel VBA összehasonlítja a második terület összes értékét a harmadik terület összes értékével. Ha az értékek megegyeznek, mindkét cella háttérszínét „No Fill” értékre állítja, mert ezek nem egyediek.

Eredmény, ha rákattint a parancsikonra a lapon:

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave