VBA - Odstráňte duplikáty z poľa

Tento tutoriál vás naučí, ako odstrániť duplikáty z poľa vo VBA.

Odstráňte duplikáty

Najjednoduchší spôsob, ako odstrániť duplikáty z poľa VBA, je priradiť hodnoty poľa kolekcii VBA a potom ich preniesť späť do poľa. Zbierky nepovoľujú duplicitné hodnoty, a preto pomocou zbierky môžeme odstrániť duplikáty z poľa. Vytvorili sme funkciu na vykonávanie tejto úlohy:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 Funkcia ArrayRemoveDups (MyArray As Variant) Ako VariantDim nPoprvé ako dlhé, nPosledné tak dlhé a i dlhéDim položka ako reťazecDim arrTemp () ako reťazecDim Coll ako nová kolekcia„Získajte pozíciu v prvom a poslednom polinFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst To nLast)„Previesť pole na reťazecFor i = nFirst to nPoslednéarrTemp (i) = CStr (MyArray (i))Ďalej i„Populujte dočasnú zbierkuPri chybe Pokračovať ďalejPre i = nPrvé až nPoslednéColl. Add arrTemp (i), arrTemp (i)Ďalej iErr. JasnéPri chybe GoTo 0„Zmeňte veľkosť poľanPosledné = počet zrážok + nPrvé - 1ReDim arrTemp (nFirst To nLast)„Naplňte polePre i = nPrvé až nPoslednéarrTemp (i) = Coll (i - nPrvý + 1)Ďalej i„Výstupné poleArrayRemoveDups = arrTempKoncová funkciaSub ArrTest ()Dim strNames (1 až 4) ako reťazecDim outputArray () As StringDim i As LongDim položka ako variant„Nastavte hodnoty počiatočného poľastrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"'Funkcia Call DupoutputArray = ArrayRemoveDups (strNames)„Výstupné hodnoty do okamžitého okna (CTRL + G)Pre každú položku In outputArrayDebug.Print položkaNasledujúca položkaKoniec pod

Poznámka: V tomto prípade sme prinútili naše pole začať od 1 (nie od 0). Ak sa vaše pole začína na 0, budete musieť kód mierne upraviť.

Všimnite si, že obsah poľa prevádzame na reťazec. V prípade potreby môžete reťazce po dokončení procesu previesť späť na celé čísla.

wave wave wave wave wave