Indholdsfortegnelse
Denne vejledning lærer dig, hvordan du fjerner dubletter fra et array i VBA.
Fjern dubletter
Den nemmeste måde at fjerne dubletter fra et VBA -array er at tildele arrayværdierne til en VBA -samling og derefter sende værdierne tilbage til et array. Samlinger tillader ikke dublerede værdier, og derfor kan vi ved hjælp af en samling fjerne dubletter fra en matrix. Vi har oprettet en funktion til at udføre denne opgave:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Funktion ArrayRemoveDups (MyArray som variant) Som variantDim nFørst så længe, nSist så længe, i så længeDim element som strengDim arrTemp () Som strengDim Coll Som Ny Samling'Få første og sidste matrixpositionernFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst To nLast)'Konverter matrix til strengFor i = nFirst To nLastarrTemp (i) = CStr (MyArray (i))Næste i'Befolk midlertidig samlingVed fejl Genoptag næsteFor i = nFirst To nLastTilføj tilføj arrTemp (i), arrTemp (i)Næste iErr.KlarVed fejl GoTo 0'Tilpas størrelse på arraynLast = Coll.Count + nFirst - 1ReDim arrTemp (nFirst To nLast)'Befolkning ArrayFor i = nFirst To nLastarrTemp (i) = Coll (i - nFirst + 1)Næste i'Output ArrayArrayRemoveDups = arrTempAfslut funktionSub ArrTest ()Dim strNavne (1 til 4) som strengDim outputArray () som strengDim i så længeDim element Som variant'Indstil startværdierstrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"'Call Dup -funktionoutputArray = ArrayRemoveDups (strNames)'Outputværdier til det umiddelbare vindue (CTRL + G)For hvert element i outputArrayDebug.Print elementNæste elementAfslut Sub |
Bemærk: I eksemplet tvang vi vores Array til at starte med 1 (ikke 0). Hvis din array starter ved 0, skal du ændre koden lidt.
Bemærk, at vi konverterer matrixindholdet til en streng. Hvis det er nødvendigt, kan du konvertere strengene tilbage til heltal, når processen er fuldført.