VBA - Премахване на дубликати от масива

Този урок ще ви научи как да премахвате дубликати от масив във VBA.

Премахване на дубликати

Най -лесният начин да премахнете дубликати от VBA масив е да присвоите стойностите на масива към VBA колекция и след това да предадете стойностите обратно в масив. Колекциите не позволяват дублиращи се стойности и по този начин използвайки колекция, можем да премахнем дубликати от масив. Създадохме функция за изпълнение на тази задача:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 Функция ArrayRemoveDups (MyArray като вариант) като вариантDim nFirst As Long, nLast As Long, i As LongЗатъмняване на елемент като низDim arrTemp () As StringDim Coll като нова колекция„Вземете първи и последен позиции на масивиnFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (nFirst To nLast)'Конвертиране на масив в низЗа i = n Първо до nПоследноarrTemp (i) = CStr (MyArray (i))Следва i„Населете временна колекцияНа грешка възобновяване следващоЗа i = n Първо до nПоследноColl.Add arrTemp (i), arrTemp (i)Следва iErr.ClearПри грешка GoTo 0„Преоразмеряване на масиваnLast = Coll.Count + nFirst - 1ReDim arrTemp (nFirst To nLast)„Популационен масивЗа i = n Първо до nПоследноarrTemp (i) = Coll (i - nFirst + 1)Следва i'Изходен масивArrayRemoveDups = arrTempКрайна функцияSub ArrTest ()Dim strNames (1 To 4) As StringDim outputArray () As StringDim i As LongЗатъмнете елемента като вариант'Задайте начални стойности на масиваstrNames (1) = "Shelly"strNames (2) = "Стив"strNames (3) = "Neema"strNames (4) = "Стив"„Функция Dup CalloutputArray = ArrayRemoveDups (strNames)'Изходни стойности към непосредствения прозорец (CTRL + G)За всеки елемент В outputArrayОтстраняване на грешки. Печат на елементСледващият елементEnd Sub

Забележка: В примера принудихме нашия масив да започне от 1 (не 0). Ако вашият масив започва с 0, ще трябва да промените кода леко.

Забележете, че преобразуваме съдържанието на масива в низ. Ако е необходимо, можете да конвертирате низовете обратно в цели числа, след като процесът приключи.

wave wave wave wave wave