VBA - Масив заповнення з унікальними значеннями зі стовпця

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

Заповнення масиву з унікальними значеннями зі стовпця

Перенесення списку значень з аркуша Excel в масив - це питання перебору рядків у Excel та заповнення масиву.

Розглянемо наступний список клієнтів на аркуші Excel.

За допомогою циклу ми можемо заповнити масив у VBA. Однак стандартний цикл прокручуватиме кожен рядок, включаючи повторювані рядки, і ви отримаєте повторювані значення у своєму масиві.

Рішення прокрутити клітинки та заповнити об’єкт Collection значеннями як об’єкт колекції не дозволить дублювати. Потім ви можете використовувати цей об’єкт колекції для заповнення вашого масиву.

1234567891011121314151617181920212223242526 Sub PopulateUniqueArray ()Dim StrCustomers () As StringDim Col як нова колекціяDim valCell As StringDim i як ціле числоDim n як ціле число'порахуйте рядки в діапазоніn = Діапазон ("A1", Діапазон ("A1"). Кінець (xlDown)). Rows.Count'Населення тимчасової колекціїУвімкнути Помилка Відновити ДаліДля i = 0 до nvalCell = Діапазон ("A1"). Зсув (i, 0). ЗначенняCol.Add valCell, valCellДалі iПомилка. ЯсноПомилка Перейти до 0'Змінити розмір nn = кол. кількість'Масив RedeclareReDim StrCustomers (від 1 до n)'Заповніть масив, перебираючи колекціюДля i = 1 Для підрахунку колонкиStrCustomers (i) = Col (i)Далі iНалагодження друку (StrCustomers (), vbCrLf)End Sub

Заповнення масиву з унікальними значеннями - функція

У наведеному вище прикладі показано процедуру, яка виконуватиме бажані дії. Але замість цього ви можете віддати перевагу портативній функції для виконання завдання:

123456789101112131415161718192021222324 Функція CreateUniqueList (nStart as Long, nEnd as long) як VariantDim Col як нова колекціяDim arrTemp() Як РядокDim valCell As StringDim i як ціле число'Населення тимчасової колекціїУвімкнути Помилка Відновити ДаліДля i = 0 до nEndvalCell = Діапазон ("A" & nStart) .Зміщення (i, 0). ЗначенняCol.Add valCell, valCellДалі iПомилка. ЯсноПомилка Перейти до 0'Змінити розмір nnEnd = Кол. кількість'Масив RedeclareReDim arrTemp(1 до кінця)'Заповніть тимчасовий масив шляхом перебору колекціїДля i = 1 Для підрахунку колонкиarrTemp(i) = Col (i)Далі i'повернути тимчасовий масив до результату функціїCreateUniqueList = arrTemp()Функція завершення

Щоб скористатися функцією, вам потрібно буде викликати її з підпроцедури:

123456789 Sub PopulateArray ()Dim StrCustomers () As StringDim strCol як колекціяDim n As Long'порахуйте рядки в діапазоніn = Діапазон ("A1", Діапазон ("A1"). Кінець (xlDown)). Rows.Count'запустіть функцію для створення масиву унікальних значеньstrCustomers () = CreateUniqueList (1, n)End Sub
wave wave wave wave wave