Ez az oktatóanyag megtanítja, hogyan távolítsa el az ismétlődéseket a tömbből a VBA -ban.
Ismétlődések eltávolítása
A duplikátumok eltávolításának legegyszerűbb módja a VBA tömbből az, ha a tömbértékeket hozzárendeli a VBA gyűjteményhez, majd az értékeket visszaadja egy tömbnek. A gyűjtemények nem engedélyezik az ismétlődő értékeket, és így egy gyűjtemény használatával eltávolíthatjuk az ismétlődéseket egy tömbből. A feladat végrehajtásához létrehoztunk egy funkciót:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Funkció ArrayRemoveDups (MyArray As Variant) Mint VariantDim nElőször olyan hosszú, nLast As Long, i As LongElem halványítása karakterlánckéntDim arrTemp () karakterlánckéntDim Coll új kollekcióként'Első és utolsó tömb pozíció megszerzésenFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst To nLast)'Konvertálja a tömböt karakterlánccáMert i = nElőször narrTemp (i) = CStr (MyArray (i))Következő i'Ideiglenes gyűjtemény feltöltéseHiba esetén Folytassa a következőtMert i = nElőször nColl. Add arrTemp (i), arrTemp (i)Következő iHiba. VilágosGoTo 0 hiba esetén'Array átméretezésenLast = Összes.szám + nElőször - 1ReDim arrTemp (nFirst To nLast)'Töltse ki a tömbötMert i = nElőször narrTemp (i) = Coll (i - n Első + 1)Következő i'Kimeneti tömbArrayRemoveDups = arrTempVége funkcióSub ArrTest ()Dim strNames (1 -től 4 -ig) karakterlánckéntDim outputArray () mint karakterláncDim i As LongDim item As Variant'Állítsa be a kezdeti tömbértékeketstrNames (1) = "Shelly"strNames (2) = "Steve"strNames (3) = "Neema"strNames (4) = "Steve"'Call Dup funkcióoutputArray = ArrayRemoveDups (strNames)'Kimeneti értékek azonnali ablakba (CTRL + G)Az outputArray minden egyes eleméhezHibakeresés. Elem nyomtatásaKövetkező elemEnd Sub |
Megjegyzés: A példában arra kényszerítettük a tömbünket, hogy 1 -től kezdődjön (nem 0 -tól). Ha a tömb 0 -ról indul, akkor kissé módosítania kell a kódot.
Figyeljük meg, hogy a tömb tartalmát karakterlánccá alakítjuk. Ha szükséges, a folyamat befejezése után a karakterláncokat egész számokká alakíthatja vissza.