Come rimuovere le righe di matrice duplicate in Excel VBA

February 25

Come rimuovere le righe di matrice duplicate in Excel VBA


La rimozione dei dati duplicati da una matrice utilizzando Visual Basic, Applications Edition (VBA) in Excel può essere fonte di confusione se non sei un programmatore esperto VBA. Ordinamento e la rimozione dei dati duplicati di un array è un processo iterativo che richiede un algoritmo piuttosto sofisticato, ma può essere facilmente realizzato seguendo alcuni semplici passaggi. In VBA, è possibile utilizzare un "ciclo FOR ..." e l'oggetto "Collection" per tenere traccia degli oggetti unici nella matrice e il processo è abbastanza rapido a seconda delle dimensioni della matrice.

istruzione

1 Fare clic sulla scheda "Sviluppatore" e fare clic su "Visual Basic" per avviare la finestra di VB Editor. Inserire un nuovo modulo di codice facendo clic sul menu "Inserisci" e cliccando su "Modulo".

2 Creare una nuova procedura di sub e definire tre variabili che si intende utilizzare per rimuovere i duplicati nella propria matrice.

removeDuplicates Private Sub ()

Dim strArray(5) As String

mycol fioco come Collection

IDX Dim As Long

Set mycol = Nuova Collezione

3 Aggiungere i dati duplicati per l'array.

strArray(0) = "bbb"

strArray (1) = "bbb"

strArray (2) = "ccc"

strArray (3) = "ddd"

strArray (4) = "ddd"

4 Copiare e incollare il seguente codice per creare un "ciclo FOR ..." e ciclo attraverso ogni elemento della matrice per rimuovere i duplicati:

On Error Resume Next

Per IDX = LBound (strArray) Per UBound (strArray)

myCol.Add 0, CStr (strArray (IDX))

Se Err Poi

strArray (IDX) = vuoto

Dups = DUPS + 1

Err.Clear

DUPS ElseIf Poi

strArray (IDX - DUPS) = strArray (IDX)

strArray (IDX) = vuoto

Finisci se

Il prossimo

5 Stampa ogni elemento della matrice per la finestra immediata per dimostrare che i duplicati sono stati rimossi.

For idx = LBound(strArray) To UBound(strArray)

Debug.Print strArray (IDX)

Il prossimo

6 Tipo "End Sub" per terminare la procedura. Fare clic sul menu "Esegui" e fare clic sul pulsante di riproduzione per eseguire il programma.