Ta bort dubbletter i Excel VBA - enkla Excel -makron

Innehållsförteckning

Nedan kommer vi att titta på ett program i Excel VBA det där tar bort dubbletter.

Situation:

I kolumn A har vi 10 nummer. Vi vill ta bort dubbletterna från dessa nummer och placera de unika numren i kolumn B.

1. Först deklarerar vi fyra variabler. toAdd av typen Boolean, uniqueNumbers of type Integer, i of Type Integer, and j of type Integer.

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

2. Därefter skriver vi det första numret i kolumn A till kolumn B eftersom det första numret alltid är "unikt".

Celler (1, 2) .Värde = Celler (1, 1) .Värde

3. Vi initierar två variabler. Vi har precis lagt till ett nummer i kolumn B, så vi initierar unika nummer med värdet 1. Vi ställer in påAdd to True förutsatt att nästa nummer också måste läggas till (detta är inte nödvändigtvis sant naturligtvis).

unika nummer = 1
toAdd = True

Vi måste avgöra om det andra numret är "unikt" eller inte. Detta kan göras på ett mycket enkelt sätt. Endast om numret inte redan finns i kolumn B måste det andra numret läggas till i kolumn B.

4. Vi måste också kontrollera detta för det tredje numret, fjärde numret och så vidare. Vi startar en For Next loop för detta.

För i = 2 till 10

5. Nu kommer den viktigaste delen av programmet. Om det andra numret är lika med ett av siffrorna i kolumn B (hittills har vi bara ett unikt nummer), ställer vi in ​​påAdd to False eftersom vi i det här fallet inte vill lägga till det här numret! (det är inte "unikt"). För närvarande är uniqueNumbers fortfarande lika med 1, men uniqueNumbers kan vara en hel lista. För att kontrollera hela listan behöver vi en annan för nästa slinga. Återigen: om talet vi vill lägga till är lika med ett av siffrorna i den här listan kommer toAdd att ställas in på False och antalet kommer inte att läggas till. Lägg till följande kodrader:

För j = 1 Till uniqueNumbers
If Cells (i, 1) .Value = Cells (j, 2) .Value Then
toAdd = Falskt
Avsluta om
Nästa j

6. Endast om toAdd fortfarande är True och inte är inställt på False måste Excel VBA lägga till numret i kolumn B. Samtidigt ökar vi unika nummer med 1 eftersom vi har ett unikt nummer mer nu. Följande kodrader får jobbet gjort:

Om toAdd = True Då
Celler (uniqueNumbers + 1, 2) .Value = Celler (i, 1) .Värde
uniqueNumbers = uniqueNumbers + 1
Avsluta om

7. Slutligen sätter vi till Lägg till till sant förutsatt att nästa nummer (tredje nummer) måste läggas till. Återigen är detta inte nödvändigtvis sant.

toAdd = True

8. Glöm inte att stänga slingan.

Nästa i

9. Placera ditt makro i en kommandoknapp och testa det.

Resultat:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave