Получение уникальных значений из столбца средствами 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д