Innholdsfortegnelse
Denne opplæringen vil lære deg hvordan du fjerner duplikater fra en matrise i VBA.
Fjern duplikater
Den enkleste måten å fjerne duplikater fra en VBA -matrise er å tilordne matrisverdiene til en VBA -samling og deretter sende verdiene tilbake til en matrise. Samlinger tillater ikke dupliserte verdier, og ved å bruke en samling kan vi fjerne duplikater fra en matrise. Vi har laget en funksjon for å utføre denne oppgaven:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Funksjon ArrayRemoveDups (MyArray Som Variant) Som VariantDim nFirst As Long, nLast As Long, i As LongDim element som strengDim arrTemp () Som strengDim Coll Som ny samling'Få første og siste matrise posisjonernFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst To nLast)'Konverter matrise til strengFor i = nFirst To nLastarrTemp (i) = CStr (MyArray (i))Neste jeg'Befolk midlertidig samlingVed feil Fortsett nesteFor i = nFirst To nLastLegg til arrTemp (i), arrTemp (i)Neste jegErr.KlarVed feil GoTo 0'Endre størrelse på matrisenLast = Coll.Count + nFirst - 1ReDim arrTemp (nFirst To nLast)'Populate ArrayFor i = nFirst To nLastarrTemp (i) = Coll (i - nFirst + 1)Neste jeg'Output ArrayArrayRemoveDups = arrTempSluttfunksjonSub ArrTest ()Dim strNames (1 To 4) As StringDim outputArray () Som strengDim i As LongDim element Som variant'Sett innledende matriseverdierstrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"'Call Dup -funksjonoutputArray = ArrayRemoveDups (strNames)'Utgangsverdier til umiddelbart vindu (CTRL + G)For hvert element i outputArrayDebug.Print elementNeste elementSlutt Sub |
Merk: I eksemplet tvang vi Array til å starte på 1 (ikke 0). Hvis matrisen starter på 0, må du endre koden litt.
Legg merke til at vi konverterer matrisens innhold til en streng. Om nødvendig kan du konvertere strengene tilbake til heltall etter at prosessen er fullført.