Slik fjerner du like Array rader i Excel VBA

Slik fjerner du like Array rader i Excel VBA


Fjerne dupliserte data fra en array ved hjelp av Visual Basic for Applications (VBA) i Excel kan være forvirrende hvis du ikke er en erfaren VBA programmerer. Sortering og fjerne dupliserte data fra en matrise er en iterativ prosess som krever en ganske avansert algoritme, men kan enkelt gjøres ved å følge noen enkle trinn. I VBA, kan du bruke en "For ... Loop" og "Collection" objekt for å holde styr på unike elementer i matrisen, og prosessen er ganske rask, avhengig av størrelsen på array.

Bruksanvisning

1 Klikk på "Utvikler" og klikk "Visual Basic" for å starte VB Editor vinduet. Sett inn en ny kode modul ved å klikke på "Insert" -menyen og klikke på "Module".

2 Opprett en ny sub prosedyre og definere tre variablene du vil bruke for å fjerne duplikater i klyngen.

Private Sub removeDuplicates ()

Dim strArray(5) As String

Dim Mycol Som Collection

Dim idx As Long

Sett Mycol = Ny samling

3 Legg dupliserte data til array.

strArray(0) = "bbb"

strArray (1) = "BBB"

strArray (2) = "CCC"

strArray (3) = "ddd"

strArray (4) = "ddd"

4 Kopier og lim inn følgende kode for å lage en "For ... Loop" og sløyfe gjennom hvert element i matrisen for å fjerne eventuelle duplikater:

On Error Resume Next

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

myCol.Add 0, CSTR (strArray (idx))

Hvis Err Deretter

strArray (IDX) = Tom

Dups = dups + 1

err.Clear

ElseIf dups Da

strArray (idx - dups) = strArray (idx)

strArray (IDX) = Tom

Slutt om

neste

5 Skriv ut hvert element i matrisen til Immediate vinduet for å vise at duplikater er fjernet.

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

Debug.Print strArray (idx)

neste

6 Skriv "End Sub" for å avslutte prosedyren. Klikk på "Kjør" menyen og klikk på play-knappen for å kjøre programmet.