Здравствуйте, форумчане подскажите пожалуйста. В столбце "D:D" имеется, список Наименование, нужно в этом списке удалить дубликаты, которые повторяются больше одного раза, и подтянуть этот список. Например из этого списка:
Яблоко
Яблоко
Груша
Лимон
Киви
Киви
Лайм
Арбуз
Яблоко
Арбуз
Дыня
Груша
Банан
Виноград
Банан
Виноград
Апельсин
Грейпфрут
Должно получиться это:Лимон
Лайм
Дыня
Апельсин
Грейпфрут
В примере, есть макрос, который удаляет дубликаты, но только проблема в том, что если "Яблоко" повториться более 1 раза, то он удалит только один повтор, а надо оба.
Код |
---|
Sub СоздатьСписокБезПовторов()
Dim vItem, avArr, i As Long, iColl As New Collection, lastRow As Long
With ActiveSheet
lastRow = .Cells(.Rows.Count, 4).End(xlUp).Row
ReDim avArr(1 To lastRow, 1 To 1)
On Error Resume Next
For Each vItem In .Range("D2:D" & lastRow).Value
If Not IsEmpty(vItem) Then
iColl.Add vItem, CStr(vItem)
If Err = 0 Then
i = i + 1
avArr(i, 1) = vItem
Else
Err.Clear
End If
End If
Next
.Range("D2:D" & lastRow).Value = Empty ' очистить эти ячейки
End With
On Error GoTo 0
If i Then Sheets("Продукты").[D2].Resize(i).Value = avArr
End Sub |