VBA - odstránenie duplikátov

Program Excel obsahuje funkciu, ktorá sa používa na odstránenie duplicitných hodnôt z vybratých buniek, riadkov alebo tabuľky. Čo keď tento proces automatizujeme vo VBA? Áno, proces odstránenia duplikátu je možné automatizovať vo VBA vo forme makra. Pri odstraňovaní duplikátu zostávajú jedinečné hodnoty v zozname alebo v tabuľke po dokončení. Môže to byť pomocou funkcie Odstrániť duplikáty vo VBA.

Ako používať Excel VBA Odstrániť duplikáty?

Naučíme sa, ako používať duplikáty odstránenia VBA s niekoľkými vynikajúcimi príkladmi.

Túto šablónu VBA Remove Duplicates Excel si môžete stiahnuť tu - VBA Remove Duplicates Excel Template

Príklad č. 1 - Odstránenie duplikátov VBA

V stĺpci A máme iba zoznam čísiel od 1 do 5 po riadok 20. Ako vidno na spodnej snímke obrazovky, všetky čísla sa opakujú viackrát.

Teraz je našou úlohou odstrániť duplikát zo zoznamu pomocou VBA. Za týmto účelom prejdite do okna VBA stlačením klávesu F11.

V tomto príklade uvidíme základné použitie spôsobu odstránenia duplikátov VBA pre čísla. Preto potrebujeme modul.

Krok 1: Otvorte nový modul z ponuky Vložiť, ktorá je na karte ponuky Vložiť.

Krok 2: Po otvorení napíšte podkategóriu VBA Remove Duplicate, ako je to znázornené nižšie.

kód:

 Sub VBARemoveDuplicate1 () End Sub 

Krok 3: V procese odstraňovania duplikátu je potrebné najprv vybrať údaje. Z tohto dôvodu vo VBA vyberieme funkciu, kým sa nezvolí výber úplného zoznamu údajov, ako je uvedené nižšie.

kód:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Vyberte End Sub 

Krok 4: Teraz vyberieme rozsah vybratých buniek alebo stĺpcov A. Bude klesať, kým nebudeme mať údaje v konkrétnom stĺpci. Nielen do riadku 20.

kód:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Vyberte rozsah (Selection, Selection.End (xlUp)). Vyberte End Sub 

Krok 5: Teraz vyberte rozsah buniek v aktuálne otvorenom hárku, ako je to znázornené nižšie. Tým sa aktivuje celý stĺpec. Stĺpec A sme vybrali až do konca.

kód:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Vyberte rozsah (Selection, Selection.End (xlUp)). Vyberte ActiveSheet.Range ("A: A"). End Sub 

Krok 6: Teraz použite funkciu RemoveDuplicate. Týmto sa aktivuje príkaz na odstránenie duplicitných hodnôt zo sekvencie stĺpcov 1. Ak existuje viac stĺpcov, číslo sa pridá a oddelí čiarkami v zátvorkách ako (1, 2, 3, …).

kód:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Vyberte rozsah (Selection, Selection.End (xlUp)). Vyberte ActiveSheet.Range ("A: A"). RemoveDuplicates Columns: = 1, End Sub 

Krok 7: Teraz použijeme príkaz Záhlavie, ktorý presunie kurzor na najvyššiu bunku listu, ktorá je väčšinou v hlavičke akejkoľvek tabuľky.

kód:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Vyberte rozsah (Selection, Selection.End (xlUp)). Vyberte ActiveSheet.Range ("A: A"). RemoveDuplicates Columns: = 1, Header: = xlYes End Sub 

Krok 8: Teraz skompilovajte kroky kódu stlačením klávesu F8. Po dokončení kliknite na tlačidlo Prehrať a spustite kód, ako je to znázornené nižšie.

Ako vidíme, duplicitné číslo sa odstráni zo stĺpca A a zostane iba jedinečný počet.

Príklad č. 2 - Odstránenie duplikátov VBA

V tomto príklade uvidíme, ako odstrániť duplicitné hodnoty z viac ako jedného stĺpca. Z tohto dôvodu vezmeme do úvahy ten istý duplicitný zoznam, aký sa použil v príklade 1. Novým spôsobom sme však pridali ďalšie dva stĺpce rovnakých hodnôt, ako je uvedené nižšie.

Toto je ďalšia metóda s trochu odlišným typom kódovej štruktúry.

Krok 1: Otvorte nový modul vo VBA a do podkategórie VBA Remove Duplicate napíšte podkategóriu. Ak je to možné, uveďte jej poradové číslo, aby bolo lepšie zvoliť správny kód na spustenie.

kód:

 Sub VBARemoveDuplicate2 () End Sub 

Krok 2: Najskôr vyberte kompletný hárok vo VBA, ako je to znázornené nižšie.

kód:

 Sub VBARemoveDuplicate2 () Cells.Select End Sub 

Krok 3: Teraz pomocou príkazu ActiveSheet vyberte aktuálne otvorený hárok a vyberte stĺpce A až C, ako je to znázornené nižšie.

kód:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). End Sub 

Krok 4: Teraz vyberte príkaz RemoveDuplicates a potom vyberte pole stĺpcov od 1 do 3, ako je uvedené nižšie.

kód:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Columns: = Array (1, 2, 3), End Sub 

Krok 5: Pri poslednom použití bude príkaz záhlavia zahrnutý do procesu odstraňovania duplikátov ako xlYes, ako je to znázornené nižšie.

kód:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Columns: = Array (1, 2, 3), Header: = xlYes End Sub 

Krok 6: Teraz zostavte kompletný kód a spustite ho. Ako vidíme nižšie, vyberie sa celý hárok, ale duplicitné hodnoty sa odstránia zo stĺpcov A, B a C, pričom sa zachová jedinečný počet.

Príklad č. 3 - Odstránenie duplikátov VBA

Toto je ďalší spôsob odstránenia duplikátu, ktorý je najjednoduchším spôsobom odstránenia duplikátu vo VBA. Na tento účel použijeme údaje, ktoré sme videli v príklade 1 a ktoré sú uvedené nižšie.

Krok 1: Teraz prejdite na VBA a znova napíšte podkategóriu VBA Remove Duplicates. Poradie sme priradili každému kódu, o ktorom sme preukázali, že má správnu stopu.

kód:

 Sub VBARemoveDuplicate3 () End Sub 

Krok 2: Je to celkom podobný model, aký sme videli v príklade 2, ale skrátený spôsob, ako napísať kód na odstránenie duplikátu. Najskôr začnite výberom rozsahu stĺpca, ako je uvedené nižšie. Zachovali sme limit do 100. bunky v stĺpci A, počínajúc od 1 a následne bodkou (.)

kód:

 Rozsah sub VBARemoveDuplicate3 () („A1: A100“). End Sub 

Krok 3: Teraz vyberte príkaz RemoveDuplicates, ako je to znázornené nižšie.

kód:

 Rozsah sub VBARemoveDuplicate3 () ("A1: A100"). RemoveDuplicates End Sub 

Krok 4: Teraz vyberte stĺpce A rovnako ako s príkazom Stĺpce so sekvenciou 1. A potom zahrňte hlavicu vybratých stĺpcov, ako je uvedené nižšie.

kód:

 Rozsah sub VBARemoveDuplicate3 () ("A1: A100"). RemoveDuplicates Stĺpce: = 1, Header: = xlYes End Sub 

Krok 5: Teraz kompilujte stlačením klávesu F8 a spustite. Uvidíme, že náš kód odstránil duplicitné čísla zo stĺpcov A a týkajú sa iba jedinečných hodnôt.

Výhody VBA Odstrániť duplikáty

  • Je užitočný pri rýchlom odstraňovaní duplikátov v ľubovoľnom rozsahu buniek.
  • Je ľahké ho implementovať.
  • Keď pracujete na obrovskom súbore údajov, kde je odstránenie duplikátu manuálne ťažké a zablokuje súbory a VBA Remove Duplicates funguje za sekundu, aby nám poskytla jedinečné hodnoty.

Nevýhody VBA Odstrániť duplikáty

  • Nie je prospešné používať duplikáty VBA na odstránenie veľmi malých údajov, pretože by sa to dalo ľahko dosiahnuť pomocou funkcie Odstrániť duplikáty, ktorá je k dispozícii v lište ponuky Údaje.

Čo je potrebné pamätať

  • Rozsah je možné zvoliť dvoma spôsobmi. Akonáhle je zvolený limit buniek, ako je znázornené v príklade 1 a druhý je výber celého stĺpca až do konca, ako je znázornené v príklade 1.
  • Uistite sa, že je súbor uložený v programe Macro Enabled Excel, ktorý nám umožní použiť napísaný kód viackrát bez straty.
  • Hodnotu funkcie Hlavička môžete ponechať ako Áno, pretože pri odstránení duplicitných hodnôt bude počítať aj hlavičku. Ak nie je duplicitná hodnota s názvom Hlavičky, ponechanie tejto možnosti ako No nič neublíži.

Odporúčané články

Toto bol návod na odstránenie duplikátov VBA. Tu sme diskutovali o tom, ako používať Excel VBA Remove Duplicates spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Práca s VBA Active Cell
  2. Odstránenie riadku vo VBA
  3. Ako používať Excel VBA Transpozícia?
  4. Ako opraviť chybu 1004 pomocou VBA

Kategórie: