Vahemike võrdlemine Excel VBA - lihtsad Exceli makrod

Lang L: none (table-of-contents)

Allpool vaatame programmi Exceli VBA seda võrdleb juhuslikult valitud vahemikud ja toob esile rakud, mis on ainulaadsed. Kui te pole valdkondadega veel tuttav, soovitame tungivalt kõigepealt seda näidet lugeda.

Olukord:

Märkus: selle näite ainus unikaalne väärtus on 3, kuna kõik muud väärtused esinevad veel vähemalt ühes piirkonnas. Vahemiku ("B2: B7, D3: E6, D8: E9") valimiseks hoidke all Ctrl ja valige iga piirkond.

Asetage oma töölehele käsunupp ja lisage järgmised koodiridad:

1. Esiteks deklareerime neli vahemiku objekti ja kaks täisarvulist muutujat.

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

2. Vormistame valitud vahemikuga objekt RangeToUse.

Set rangeToUse = Valik

3. Lisage rida, mis muudab kõigi lahtrite taustavärvi, valikule „Ei täida”. Lisage ka rida, mis eemaldab kõigi lahtrite piirid.

Lahtrid.Interior.ColorIndex = 0
Cells.Borders.LineStyle = xlPuudub

4. Informeerige kasutajat, kui ta valib ainult ühe piirkonna.

Kui Selection.Areas.Count <= 1 Siis
MsgBox "Palun valige mitu piirkonda."
Muidu
Lõpp Kui

Järgmised koodiridad (5, 6 ja 7) tuleb lisada Else ja End If vahele.

5. Värvige valitud alade lahtrid.

rangeToUse.Interior.ColorIndex = 38

6. Äärista iga ala.

Iga üksiku piirkonna jaoks vahemikusToUse.Areas
singleArea.BorderAround ColorIndex: = 1, kaal: = xl õhuke
Järgmine singelArea

7. Ülejäänud osa sellest programmist näeb välja järgmine.

I = 1 vahemikku ToToUse.Areas.Count
J = i + 1 vahemikule ToToUse.Areas.Count
Iga lahtri1 vahemikusToUse.Areas (i)
Iga lahtri2 vahemikus RangeToUse.Areas (j)
Kui lahter1.Väärtus = lahter2.Väärtus Siis
cell1.Interior.ColorIndex = 0
cell2.Interior.ColorIndex = 0
Lõpp Kui
Järgmine lahter 2
Järgmine lahter 1
Järgmine j
Edasi i

Selgitus: see võib tunduda pisut üle jõu käiv, kuid see pole nii raske. rangeToUse.Areas.Count võrdub 3 -ga, seega vähendavad kaks esimest koodirida väärtustele i = 1 kuni 3 ja j = i + 1 kuni 3. i = 1, j = 2 puhul võrdleb Excel VBA esimese piirkonna kõiki väärtusi kõigi teise piirkonna väärtustega. Kui i = 1, j = 3, võrdleb Excel VBA esimese piirkonna kõiki väärtusi kolmanda piirkonna kõigi väärtustega. Kui i = 2, j = 3, võrdleb Excel VBA teise ala kõiki väärtusi kolmanda piirkonna kõigi väärtustega. Kui väärtused on samad, määrab see mõlema lahtri taustavärviks „Ei täida”, kuna need pole ainulaadsed.

Tulemus, kui klõpsate lehel käsunuppu:

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave