VBA - noņemiet dublikātus no masīva

Satura rādītājs

Šī apmācība iemācīs jums noņemt dublikātus no masīva VBA.

Noņemt dublikātus

Vienkāršākais veids, kā noņemt dublikātus no VBA masīva, ir piešķirt masīva vērtības VBA kolekcijai un pēc tam nodot vērtības atpakaļ masīvam. Kolekcijas neatļauj vērtību dublikātus, un tādējādi, izmantojot kolekciju, mēs varam noņemt dublikātus no masīva. Mēs esam izveidojuši funkciju šī uzdevuma veikšanai:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 Funkcija ArrayRemoveDups (MyArray As Variant) Kā variantsDim nPirmkārt tik ilgi, nPēdējais tik ilgi, i tik ilgiAptumšot vienumu kā virkniDim arrTemp () kā virkneDim Coll kā jauna kolekcija'Iegūstiet pirmā un pēdējā masīva pozīcijasnFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (pirmais no nLast)Konvertēt masīvu uz virkniAttiecībā uz i = nPirmkārt uz nLastarrTemp (i) = CStr (MyArray (i))Tālāk i"Apdzīvot pagaidu kolekcijuPar kļūdu Atsākt nākamoAttiecībā uz i = nPirmkārt uz nLastColl. Pievienot arrTemp (i), arrTemp (i)Tālāk iKļūda. SkaidrsKļūda GoTo 0'Mainiet masīva izmērunLast = kop. skaits + n pirmais - 1ReDim arrTemp (nFirm to nLast)'Apdzīvot masīvuAttiecībā uz i = nPirmkārt uz nLastarrTemp (i) = Coll (i - nPirmā + 1)Tālāk i'Izvades masīvsArrayRemoveDups = arrTempBeigu funkcijaApakštests ()Dim strNames (no 1 līdz 4) kā virkneDim outputArray () kā virkneDim un tik ilgiIzgaismot vienumu kā variantu'Iestatiet sākotnējās masīva vērtībasstrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Stīvs"'Call Dup funkcijaoutputArray = ArrayRemoveDups (strNames)'Izvades vērtības tūlītējā logā (CTRL + G)Katram vienumam In outputArrayAtkļūdošana. Drukāt vienumuNākamais vienumsBeigu apakš

Piezīme: piemērā mēs piespiedām mūsu masīvu sākt ar 1 (nevis 0). Ja jūsu masīvs sākas ar 0, jums būs nedaudz jāmaina kods.

Ņemiet vērā, ka mēs pārveidojam masīva saturu par virkni. Ja nepieciešams, pēc procesa pabeigšanas varat pārvērst virknes par veseliem skaitļiem.

wave wave wave wave wave