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

Situazione:

In colonna A abbiamo 10 numeri. Noi vogliamo rimuovere i duplicati da questi numeri e posizionare i numeri univoci nella colonna B.

Remove Duplicates in Excel VBA

  1. In primo luogo, si dichiara quattro variabili. toadd di tipo booleano, 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
  1. Successivamente, scrivere il primo numero della colonna A alla colonna B dal momento che il primo numero è sempre ‘unico’.

Cells(1, 2).Value = Cells(1, 1).Value
  1. si inizializza due variabili. Abbiamo appena aggiunto un numero alla colonna B, quindi inizializziamo uniqueNumbers con il valore 1. Abbiamo impostato toadd True supponendo che i prossimi esigenze numerici per essere aggiunti pure (questo non è necessariamente vero, naturalmente).

uniqueNumbers = 1

toAdd = True

Abbiamo bisogno di 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.

  1. Abbiamo anche bisogno di controllare questo per il terzo numero, quarto numero, e così via. Iniziamo un ciclo For Next per questo.

For i = 2 To 10
  1. 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 unico), abbiamo fissato toadd False perché in questo caso non vogliamo aggiungere questo numero! (Non è ‘unico’). Al momento uniqueNumbers è ancora uguale a 1, ma uniqueNumbers può essere un elenco intero. Per controllare tutta questa lista, abbiamo bisogno di un altro ciclo For Next. Anche in questo caso: se il numero vogliamo aggiungere è pari ad uno dei numeri in questo elenco, toadd sarà impostato su False e non sarà aggiunto il numero. Aggiungere le seguenti righe di codice:

For j = 1 To uniqueNumbers

If Cells(i, 1).Value = Cells(j, 2).Value Then

toAdd = False

End If

Next j
  1. Solo se toadd è ancora vero e non impostato su False, Excel VBA deve aggiungere il numero di colonna B. Allo stesso tempo, ci incrementare uniqueNumbers da 1 perché abbiamo un numero unico di più adesso. Le seguenti righe di codice ottenere il lavoro fatto:

If toAdd = True Then

Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value

uniqueNumbers = uniqueNumbers + 1

End If
  1. Infine, abbiamo impostato toadd True assumendo deve essere aggiunto il numero successivo (terzo numero). Anche questo non è necessariamente vero.

toAdd = True
  1. Non dimenticare di chiudere il ciclo.

Next i
  1. Inserire la macro in un pulsante di comando e testarlo.

Risultato:

Remove Duplicates Result