Получение уникальных значений из столбца средствами VBA

Узнай цену своей работы

Формулировка задачи:

Всем привет. Нужен совет знающих людей по задаче - Получение уникальных значений из столбца средствами VBA. 1) Пробовали через фильтр - фильтр установить удается, однако непонятно как получить значения фильтра. Возможно ли это? 2) Второй вариант решения задачи через массив - записать все значения столбца в массив, далее возможно несколько вариантов - удалить в текущем массиве все неуникальные значения либо переместить все уникальные значения в новый массив. Первая часть (запись элементов в массив) реализована, со второй частью возникают проблемы - как удалить все неуникальные значения из массива непонятно, да и возможно ли это? Переместить значения в новый массив - как определить границы нового массива? Каким должен быть алгоритм? Возможно есть какой то более простой способ решения данной задачи. В любом случае буду благодарна за любую помощь/подсказку

Решение задачи: «Получение уникальных значений из столбца средствами VBA»

textual
Листинг программы
  1. Sub PoiskDublei()
  2. Dim arr() As String ' Объявление динамического массива
  3. Dim iLastRow As Integer 'Переменная для поиска последнего значения в столбце
  4. Dim i As Integer, Dict, k As Integer, s As String
  5. Set Dict = CreateObject("Scripting.Dictionary")
  6. iLastRow = Cells(Rows.Count, 2).End(xlUp).Row 'определение количества заполненных строк
  7. For i = 2 To iLastRow
  8.   s = Cells(i, 2).Value
  9.   If Not Dict.Exists(s) And Trim$(s) <> "" Then
  10.          Dict.Add s, i
  11.          k = k + 1
  12.          ReDim Preserve arr(1 To k)
  13.          arr(k) = s
  14.    End If
  15. Next
  16. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы