Sisällysluettelo
Tämä opetusohjelma opettaa sinulle, miten kaksoiskappaleet poistetaan taulukosta VBA: ssa.
Poista kaksoiskappaleet
Helpoin tapa poistaa kaksoiskappaleet VBA -taulukosta on määrittää taulukon arvot VBA -kokoelmaan ja siirtää sitten arvot takaisin taulukolle. Kokoelmat eivät salli päällekkäisiä arvoja, joten kokoelman avulla voimme poistaa kaksoiskappaleet taulukosta. Olemme luoneet toiminnon tämän tehtävän suorittamiseen:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Toiminto ArrayRemoveDups (MyArray As Variant) VarianttinaHimmennä ensin niin kauan, n viimeinen niin kauan, minä niin kauanHimmennä kohde merkkijononaDim arrTemp () merkkijononaDim Coll kuin uusi kokoelma'Hanki ensimmäisen ja viimeisen sarjan asematnFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nEnsimmäinen nLast)'Muunna Array merkkijonoksiSillä i = nEnsimmäinen nViimeksiarrTemp (i) = CStr (MyArray (i))Seuraavaksi minä'Täytä väliaikainen kokoelmaVirhe Jatka seuraavaksiSillä i = nEnsimmäinen nViimeksiColl. Lisää arrTemp (i), arrTemp (i)Seuraavaksi minäVirhe SelväVirhe GoTo 0'Muuta taulukon kokoanLast = Laskentamäärä + nEnsimmäinen - 1ReDim arrTemp (nEnsimmäinen nLast)'Täytä joukkoSillä i = nEnsimmäinen nViimeksiarrTemp (i) = Coll (i - nEnsimmäinen + 1)Seuraavaksi minä'TulostusjärjestelmäArrayRemoveDups = arrTempLopeta toimintoAlatesti ()Dim strNames (1-4) merkkijononaDim outputArray () merkkijononaDim niin kauanDim -kohde Vaihtoehtona'Aseta alkuarvotstrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"'Call Dup -toimintooutputArray = ArrayRemoveDups (strNames)'Lähtöarvot välittömään ikkunaan (CTRL + G)Jokaiselle tuotokselle outputArrayVirheenkorjaus Tulosta kohdeSeuraava kohdeEnd Sub |
Huomautus: Esimerkissä pakotimme Array: n alkamaan 1: stä (ei 0). Jos matriisi alkaa nollasta, sinun on muokattava koodia hieman.
Huomaa, että muunnamme taulukon sisällön merkkijonoksi. Tarvittaessa voit muuntaa merkkijonot takaisin kokonaisluvuiksi, kun prosessi on valmis.