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: