2015-06-23 2 views
-1

Что я хочу сделать, это прокрутить строки таблицы и проверить каждую строку в столбце для дубликатов.Excel vba loop through table

Например, я начну с ячейки A2, скажем, что она имеет текстовое значение «CAP». Я хочу сравнить это значение «CAP» со всеми остальными строками в этом столбце.

Если он находит дубликат, я хочу, чтобы он помещался в колонку «Dupe1», поэтому обе записи имеют одинаковый номер обмана.

Затем он переходит к A3 и проверяет это значение со всеми остальными строками в этом столбце. скоро скоро.

Если больше обманываться найдены, то они имена «Dupe2», «Dupe3» и т.д ...

Я изо всех сил, чтобы понять, как достичь этого?

+1

Что вы уже пробовали? –

+1

Используйте вспомогательную колонку с формулой '= COUNTIF()'? –

+0

Небольшой код поможет показать свой уровень знаний. Вы просто зацикливаете со ссылками на ячейки или с помощью ссылок на таблицы или мой личный любимый импорт на массив и цикл. –

ответ

1
For Example, you have two columns: 

Column A | Dupe 
1 
2 
3 
4 
4 
5 
4 

Sub Button1_Click() 
    n = ThisWorkbook.Worksheets(1).Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count 
    Dim Counter As Integer 
    Counter = 1 
    Duplicate = 0 
     For i = 2 To n 
      If Len(Trim(Worksheets(1).Cells(i, 2))) = 0 Then 
       For j = i + 1 To n 
        If Worksheets(1).Cells(i, 1) = Worksheets(1).Cells(j, 1) Then 
         Worksheets(1).Cells(i, 2) = "Dupe" + CStr(Counter) 
         Worksheets(1).Cells(j, 2) = "Dupe" + CStr(Counter) 
         Duplicate = 1 
        End If 
       Next j 
      End If 
      If Duplicate = 1 Then 
       Counter = Counter + 1 
       Duplicate = 0 
      End If 
     Next i 
End Sub