Rimuovi i duplicati in Excel VBA - Easy Excel Macros

Sommario

Di seguito vedremo un programma in Excel VBA Quello rimuove i duplicati.

Situazione:

Nella colonna A abbiamo 10 numeri. Vogliamo rimuovere i duplicati da questi numeri e posizionare i numeri univoci nella colonna B.

1. Innanzitutto, dichiariamo quattro variabili. toAdd di tipo Boolean, uniqueNumbers di tipo Integer, i di tipo Integer e j di tipo Integer.

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

2. Successivamente, scriviamo il primo numero della colonna A nella colonna B poiché il primo numero è sempre "unico".

Celle(1, 2).Valore = Celle(1, 1).Valore

3. Inizializziamo due variabili. Abbiamo appena aggiunto un numero alla colonna B, quindi inizializziamo uniqueNumbers con il valore 1. Impostiamo Add su True assumendo che anche il numero successivo debba essere aggiunto (questo non è necessariamente vero, ovviamente).

numeriunici = 1
toAdd = True

Dobbiamo determinare se il secondo numero è "unico" o meno. Questo può essere fatto in un modo molto semplice. Solo se il numero non è già nella colonna B, il secondo numero deve essere aggiunto alla colonna B.

4. Dobbiamo anche controllare questo per il terzo numero, il quarto numero e così via. Avviamo un ciclo For Next per questo.

Per i = da 2 a 10

5. Ora arriva la parte più importante del programma. Se il secondo numero è uguale a uno dei numeri nella colonna B (finora abbiamo solo un numero univoco), impostiamo Aggiungi a Falso perché in questo caso non vogliamo aggiungere questo numero! (non è "unico"). Al momento uniqueNumbers è ancora uguale a 1, ma uniqueNumbers può essere un'intera lista. Per controllare l'intero elenco, abbiamo bisogno di un altro ciclo For Next. Ancora: se il numero che vogliamo aggiungere è uguale a uno dei numeri in questo elenco, toAdd verrà impostato su False e il numero non verrà aggiunto. Aggiungi le seguenti righe di codice:

Per j = 1 a numeri unici
If Cells(i, 1).Value = Cells(j, 2).Value Then
toAdd = False
Finisci se
Avanti j

6. Solo se toAdd è ancora True e non è impostato su False, Excel VBA deve aggiungere il numero alla colonna B. Allo stesso tempo, incrementiamo uniqueNumbers di 1 perché ora abbiamo un numero univoco in più. Le seguenti righe di codice portano a termine il lavoro:

Se toAdd = True Allora
Cells(UniqueNumbers + 1, 2).Value = Cells(i, 1).Value
UniqueNumbers = UniqueNumbers + 1
Finisci se

7. Infine, impostiamo Aggiungi su True assumendo che sia necessario aggiungere il numero successivo (terzo numero). Ancora una volta questo non è necessariamente vero.

toAdd = True

8. Non dimenticare di chiudere il ciclo.

Avanti io

9. Inserire la macro in un pulsante di comando e verificarlo.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave