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

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

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

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

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

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

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

7   голосов , оценка 3.857 из 5
Похожие ответы