Odeberte duplikáty v aplikaci Excel VBA - snadná makra aplikace Excel

Obsah

Níže se podíváme na program v Excel VBA že odstraní duplikáty.

Situace:

Ve sloupci A máme 10 čísel. Chceme odstranit duplikáty z těchto čísel a umístit jedinečná čísla do sloupce B.

1. Nejprve deklarujeme čtyři proměnné. 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. Dále napíšeme první číslo sloupce A do sloupce B, protože první číslo je vždy „jedinečné“.

Buňky (1, 2). Hodnota = buňky (1, 1). Hodnota

3. Inicializujeme dvě proměnné. Právě jsme přidali jedno číslo do sloupce B, takže inicializujeme uniqueNumbers s hodnotou 1. Nastavíme na Add to True za předpokladu, že je třeba přidat i další číslo (to samozřejmě nemusí být pravda).

uniqueNumbers = 1
toAdd = True

Musíme určit, zda je druhé číslo „jedinečné“ nebo ne. To lze provést velmi jednoduchým způsobem. Pouze v případě, že číslo již není ve sloupci B, je třeba druhé číslo přidat do sloupce B.

4. Musíme to také zkontrolovat pro třetí číslo, čtvrté číslo atd. Za tímto účelem spustíme smyčku For Next.

Pro i = 2 až 10

5. Nyní přichází nejdůležitější část programu. Pokud se druhé číslo rovná jednomu z čísel ve sloupci B (zatím máme pouze jedno jedinečné číslo), nastavíme na Přidat na nepravdivé, protože v tomto případě nechceme toto číslo přidat! (není to „jedinečné“). V tuto chvíli je uniqueNumbers stále rovna 1, ale uniqueNumbers může být celý seznam. Abychom zkontrolovali celý tento seznam, potřebujeme další smyčku For Next. Opět: pokud se číslo, které chceme přidat, rovná jednomu z čísel v tomto seznamu, toAdd bude nastaveno na False a číslo nebude přidáno. Přidejte následující řádky kódu:

Pro j = 1 na uniqueNumbers
If Cells (i, 1) .Value = Cells (j, 2) .Value Then
toAdd = False
Konec If
Další j

6. Pouze pokud je toAdd stále True a není nastaveno na False, Excel VBA potřebuje přidat číslo do sloupce B. Současně zvyšujeme uniqueNumbers o 1, protože nyní máme o jedno jedinečné číslo více. Úlohu provedou následující řádky kódu:

If toAdd = True Then
Buňky (uniqueNumbers + 1, 2). Hodnota = buňky (i, 1). Hodnota
uniqueNumbers = uniqueNumbers + 1
Konec If

7. Nakonec jsme nastavili na Přidat do True za předpokladu, že je třeba přidat další číslo (třetí číslo). Opět to nemusí být nutně pravda.

toAdd = True

8. Nezapomeňte uzavřít smyčku.

Příště já

9. Umístěte makro do příkazového tlačítka a otestujte ho.

Výsledek:

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave