Lang L: none (table-of-contents)
See õpetus õpetab teile, kuidas VBA -s massiivist duplikaate eemaldada.
Eemalda duplikaadid
Lihtsaim viis duplikaatide eemaldamiseks VBA massiivist on massiivi väärtuste määramine VBA kogule ja seejärel väärtuste edastamine massiivile. Kogud ei luba duplikaatväärtusi ja seega kogu abil saame massiivist duplikaadid eemaldada. Selle ülesande täitmiseks oleme loonud funktsiooni:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Funktsioon ArrayRemoveDups (MyArray As Variant) VariantinaHämardage esmalt nii kaua, n viimati kui kaua, i nii kauaHämarda kirje stringinaDim arrTemp () StringinaDim Coll kui uus kollektsioon'Hankige esimese ja viimase massiivi positsioonidnFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst to nLast)'Teisenda massiiv stringiksSest i = nEsimeselt nNastarrTemp (i) = CStr (MyArray (i))Edasi i'Täida ajutine koguVea korral Jätka järgmistSest i = nEsimeselt nNastKoll. Lisage arrTemp (i), arrTemp (i)Edasi iViga. SelgeViga GoTo 0'Muutke massiivi suurustnViimane = Kogum.arv + nEsimene - 1ReDim arrTemp (nFirst to nLast)'Asustage massiivSest i = nEsimeselt nNastarrTemp (i) = Koll (i - n Esimene + 1)Edasi i'VäljundmassiivArrayRemoveDups = arrTempLõppfunktsioonAlamtest ()Dim strNames (1 kuni 4) stringinaDim outputArray () stringinaDim i As LongDim element Variant'Määrake massiivi esialgsed väärtusedstrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"Funktsioon Call DupoutputArray = ArrayRemoveDups (strNames)'Väljundväärtused kohesele aknale (CTRL + G)Iga üksuse kohta VäljundArraySilumine. Prindi üksusJärgmine üksusEnd Sub |
Märkus. Näites sundisime oma massiivi alustama 1 (mitte 0). Kui teie massiiv algab 0 -st, peate koodi veidi muutma.
Pange tähele, et teisendame massiivi sisu stringiks. Vajadusel saate pärast protsessi lõppu stringid teisendada täisarvudeks.