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: