Страницы: 1
RSS
Вывести список уникальных значений используя коллекции VBA
 
Доброго времени суток, друзья.
Так как тем особо нет - решил что-бы не скучать по чуть-чуть влезть в коллекции.
Нашел рабочий макрос (прилагаю) разобрал его, но остался черный участок, а именно почему при добавлении объекта в коллекцию используя CStr(cell.Value) выводит список уникальных без него полный список ??
Код
Sub unik()
Dim cell As Range, rng As Range
Dim Kolekciya_unik As New Collection
Set rng = Range("A2:A500")

On Error Resume Next
For Each cell In rng
    If Not IsEmpty(cell) Then Kolekciya_unik.Add cell.Value, CStr(cell.Value)
Next cell
For i = 1 To Kolekciya_unik.Count
    Cells(i, 3) = Kolekciya_unik(i)
Next i
End Sub
Изменено: Mershik - 10.05.2020 21:28:48
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
без него
Имеется ввиду так?
Код
    If Not IsEmpty(cell) Then Kolekciya_unik.Add cell.Value
Второй параметр при добавлении в коллекцию - это ключ, он должен быть уникальным. Если пытаемся добавить элемент с уже имеющимся ключом, возникнет ошибка, которая в приложенном коде игнорируется и элемент (который не уникальный) не добавляется.
Если второй параметр не используется, никакой ошибки не возникает и элемент добавляется,  
 
Alec Perle, CStr(cell.Value) - это есть второй параметр...
перевел справку  Collection.Add(Object, String, Object, Object)

Спасибо.
Изменено: Mershik - 10.05.2020 21:57:38
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
Collection.Add(Object, String, Object, Object)
Не так. Первый - может быть любым, второй - строка, третий и четвертый - число или строка.
Страницы: 1
Наверх