Уникальные дубликаты

Sub getTheSame()
    On Error GoTo errh: 'Устанавливаем хендлер ошибок
    Set h = CreateObject("Scripting.dictionary") 'Создаем хеш - множество пар "ключ" -> значение
    Dim rg As Range
    Count = 0
     ReDim avArr(1 To Rows.Count, 1 To 2)
     ReDim tempArr(1 To 10)
    j = 0
    Set rg = Columns(1).Cells.SpecialCells(xlCellTypeConstants) 'Берем только константы из колонки 1
    For Each c In rg.Cells 'Перебираем все ячейки из множества
        DoEvents 'Даем Экселю возможность отрисоваться
        ActiveWindow.Caption = c.Address 'Можно еще адрес ячейки показывать - чтоб был виден прогресс
        h(c.Value) = h(c.Value) + 1 ' Если ключ не существовал, хеш его автоматически добавит, иначе увеличит к-во повторений ключа
        If h(c.Value) > 1 Then 'Если ключ встречался более 1 раза
            c.Offset(0, 1).Value = "Exists" 'Ставим в соседней ячейке Exists
 
            j = j + 1
            tempArr(j) = c.Value
        End If
    Next c
 
    Set h = Nothing 'Освобождаем память из под хеша
    MsgBox "Done", vbInformation ' Ну и для наглядности плакат об окончании
    '=============================
    If 0 Then 'Сюда попадем только в случае ошибки
errh:       'В обычных условиях if 0 никогда не сработает
        Set h = Nothing 'Если возникла ошибка - освобождаем память из под хеша
        MsgBox Err.Description 'Выводим сообщение об ошибке
    End If
    '==============================
 
    ReDim avArr(1 To Rows.Count, 1 To 2)
        With New Collection
        On Error Resume Next
        For Each vItem In tempArr
        'Cells(Rows.Count, 1).End(xlUp) - определяет последнюю заполненную ячейку в столбце А
            .Add vItem, CStr(vItem)
            If Err = 0 Then
                li = li + 1
                avArr(li, 1) = vItem: Debug.Print vItem
            Else
               Err.Clear
               Count = Count + 1
            End If
        Next
    End With
 
 
     If