Fjern dubletter i Excel VBA - nemme Excel -makroer

Indholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA at fjerner dubletter.

Situation:

I kolonne A har vi 10 tal. Vi vil fjerne dubletterne fra disse tal og placere de unikke tal i kolonne B.

1. For det første erklærer vi fire variabler. toAdd af typen boolsk, unikNumre af typen Integer, i af typen Integer og j af typen Integer.

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

2. Dernæst skriver vi det første nummer i kolonne A til kolonne B, da det første tal altid er 'unikt'.

Celler (1, 2) .Værdi = Celler (1, 1) .Værdi

3. Vi initialiserer to variabler. Vi har lige tilføjet et tal til kolonne B, så vi initialiserer uniqueNumbers med værdien 1. Vi sætter til Tilføj til sand, forudsat at det næste nummer også skal tilføjes (dette er naturligvis ikke nødvendigvis sandt).

unikke numre = 1
toAdd = True

Vi er nødt til at afgøre, om det andet tal er 'unikt' eller ej. Dette kan gøres på en meget let måde. Kun hvis tallet ikke allerede findes i kolonne B, skal det andet tal tilføjes til kolonne B.

4. Vi skal også kontrollere dette for det tredje tal, fjerde nummer og så videre. Vi starter en For Next loop til dette.

For i = 2 til 10

5. Nu kommer den vigtigste del af programmet. Hvis det andet tal er lig med et af tallene i kolonne B (indtil videre har vi kun et unikt tal), sætter vi til Tilføj til Falsk, fordi vi i dette tilfælde ikke ønsker at tilføje dette tal! (det er ikke 'unikt'). I øjeblikket er uniqueNumbers stadig lig med 1, men uniqueNumbers kan være en hel liste. For at kontrollere hele listen har vi brug for en anden For Next loop. Igen: hvis det tal, vi vil tilføje, er lig med et af tallene på denne liste, vil toAdd blive sat til Falsk, og tallet vil ikke blive tilføjet. Tilføj følgende kodelinjer:

For j = 1 Til uniqueNumbers
Hvis Celler (i, 1) .Værdi = Celler (j, 2) .Værdi Derefter
toAdd = Falsk
Afslut Hvis
Næste j

6. Kun hvis toAdd stadig er True og ikke er indstillet til Falsk, skal Excel VBA tilføje nummeret til kolonne B. Samtidig øger vi uniqueNumbers med 1, fordi vi har et unikt nummer mere nu. Følgende kode linjer får jobbet udført:

Hvis toAdd = True Then
Celler (uniqueNumbers + 1, 2) .Værdi = Celler (i, 1) .Værdi
uniqueNumbers = uniqueNumbers + 1
Afslut Hvis

7. Endelig sætter vi til Tilføj til sand, forudsat at det næste nummer (tredje nummer) skal tilføjes. Igen er dette ikke nødvendigvis sandt.

toAdd = True

8. Glem ikke at lukke sløjfen.

Næste i

9. Placer din makro i en kommandoknap, og test den.

Resultat:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave