Odstráňte duplikáty v programe Excel VBA - ľahké makrá programu Excel

Obsah

Nižšie sa pozrieme na program v Excel VBA že odstráni duplikáty.

Situácia:

V stĺpci A máme 10 čísel. Chceme z týchto čísel odstrániť duplikáty a jedinečné čísla umiestniť do stĺpca B.

1. Najprv deklarujeme štyri premenné. toAdd typu Boolean, uniqueNumbers typu Integer, i typu Integer a j typu Integer.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2. Ďalej napíšeme prvé číslo stĺpca A do stĺpca B, pretože prvé číslo je vždy „jedinečné“.

Bunky (1, 2). Hodnota = bunky (1, 1). Hodnota

3. Inicializujeme dve premenné. Práve sme pridali jedno číslo do stĺpca B, takže inicializujeme uniqueNumbers s hodnotou 1. Nastavíme na Pridať do True za predpokladu, že je potrebné pridať aj ďalšie číslo (to samozrejme nemusí nutne platiť).

uniqueNumbers = 1
toAdd = True

Musíme určiť, či je druhé číslo „jedinečné“ alebo nie. To sa dá urobiť veľmi jednoduchým spôsobom. Len ak číslo ešte nie je v stĺpci B, druhé číslo je potrebné pridať do stĺpca B.

4. Tiež to musíme skontrolovať pre tretie číslo, štvrté číslo atď. Na to spustíme slučku For Next.

Pre i = 2 až 10

5. Teraz prichádza najdôležitejšia časť programu. Ak sa druhé číslo rovná jednému z čísel v stĺpci B (zatiaľ máme iba jedno jedinečné číslo), nastavili sme hodnotu Pridať na nepravdivé, pretože v tomto prípade nechceme toto číslo pridať! (nie je to „jedinečné“). V súčasnej dobe je uniqueNumbers stále rovná 1, ale uniqueNumbers môže byť celý zoznam. Na kontrolu celého tohto zoznamu potrebujeme ďalšiu slučku For Next. Opäť: ak sa číslo, ktoré chceme pridať, rovná jednému z čísel v tomto zozname, funkcia toAdd sa nastaví na hodnotu False a číslo sa nepridá. Pridajte nasledujúce riadky kódu:

Pre j = 1 na jedinečné čísla
Ak bunky (i, 1). Hodnota = bunky (j, 2). Hodnota potom
toAdd = False
Koniec Ak
Ďalej j

6. Len vtedy, ak je toAdd stále True a nie je nastavené na False, Excel VBA potrebuje pridať číslo do stĺpca B. Súčasne zvýšime uniqueNumbers o 1, pretože teraz máme o jedno jedinečné číslo viac. Nasledujúce riadky kódu dokončia úlohu:

Ak toAdd = True Potom
Bunky (uniqueNumbers + 1, 2). Hodnota = bunky (i, 1). Hodnota
uniqueNumbers = uniqueNumbers + 1
Koniec Ak

7. Nakoniec sme nastavili na Pridať do True za predpokladu, že je potrebné pridať ďalšie číslo (tretie číslo). Opäť to nemusí byť nevyhnutne pravda.

toAdd = Pravda

8. Nezabudnite uzavrieť slučku.

Ďalej i

9. Umiestnite makro do príkazového tlačidla a otestujte ho.

Výsledok:

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave