VBA - Видаліть дублікати з масиву

Цей підручник навчить вас, як видалити дублікати з масиву у VBA.

Видаліть дублікати

Найпростіший спосіб видалити дублікати з масиву VBA - це призначити значення масиву до колекції VBA, а потім передати значення назад до масиву. Колекції не дозволяють дублювати значення, і, таким чином, за допомогою колекції ми можемо видалити дублікати з масиву. Ми створили функцію для виконання цього завдання:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 Функція ArrayRemoveDups (MyArray As Variant) Як VariantDim nFirst As Long, nLast As Long, i As LongЗатемнити елемент як рядокDim arrTemp () як рядокDim Coll як нова колекція"Отримайте перші та останні позиції масивуnFirst = LBound (MyArray)nLast = UBound (MyArray)ReDim arrTemp (від першого до останнього)'Перетворити масив у рядокДля i = nПерший до nОстаннійarrTemp (i) = CStr (MyArray (i))Далі i'Населення тимчасової колекціїУвімкнути Помилка Відновити ДаліДля i = nПерший до nОстаннійColl.Add arrTemp (i), arrTemp (i)Далі iПомилка. ЯсноПомилка Перейти до 0'Змінити розмір масивуnLast = Coll.Count + nFirst - 1ReDim arrTemp (від першого до останнього)'Заповнення масивуДля i = nПерший до nОстаннійarrTemp (i) = Coll (i - nFirst + 1)Далі i'Вихідний масивArrayRemoveDups = arrTempФункція завершенняSub ArrTest ()Затемнити strNames (від 1 до 4) як рядокЗатемнити outputArray () як рядокDim i As LongЗатемнити елемент як варіант'Встановіть початкові значення масивуstrNames (1) = "Shelly"strNames (2) = "Стів"strNames (3) = "Neema"strNames (4) = "Стів"'Функція Dup CalloutputArray = ArrayRemoveDups (strNames)'Вихідні значення до негайного вікна (CTRL + G)Для кожного елемента In outputArrayНалагодження. Друк елементаНаступний пунктEnd Sub

Примітка: У прикладі ми змусили наш масив починатися з 1 (а не 0). Якщо ваш масив починається з 0, вам потрібно буде трохи змінити код.

Зверніть увагу, що ми перетворюємо вміст масиву в рядок. При необхідності після завершення процесу можна перетворити рядки назад у цілі числа.

wave wave wave wave wave