Функция VBA, которая удаляет дубликаты и записывает их через запятую
Мне нужна формула (функция), которая будет иметь два аргумента: 1. диапазон (будет выбран) 2. символ-разделитель между дубликатами. Пример У меня в диапазоне есть несколько кодов продуктов 0001, 0015, 0015, 0015, 0015, 0015, 0015, 0015, 0015, 0020 в разных ячейках. Я хочу получить 0001, 0015, 0020 по формуле.
То, что я написал:
Function UNIQUE_NUMBER(RangeD As Range, SepCharacter As String)
Dim UNIQUE As String
On Error GoTo msg
For Each cell In RangeD
If Not IsEmpty(cell) Then
If Cells(cell.Row, cell.Column) = "" Then Resume Next
r = cell.Row
C = cell.Column
a_length = Len(a)
a = a & SepCharacter & Cells(r, C)
If WorksheetFunction.Search(Cells(r, C) & SepCharacter, a, a_length + 1) > 1 And Cells(r, C) <> "" Then
a = WorksheetFunction.Substitute(a, Cells(r, C) & SepCharacter, "", 1)
End If
End If
Next cell
SepCharacter2 = SepCharacter & SepCharacter
UNIQUE = Mid(a, Len(SepCharacter) + 1, Len(a))
UNIQUE_NUMBER = Replace(Replace(Replace(Replace(Replace(Replace(Replace(UNIQUE, SepCharacter2, ""), SepCharacter2, ""), SepCharacter2, ""), SepCharacter2, ""), SepCharacter2, ""), SepCharacter2, ""), SepCharacter2, "")
Exit Function
msg:
Resume Next
End Function
И иногда это работает правильно (как-то), а иногда нет. Что вы предлагаете ?