Задача:
В екселе есть колонка с текстами, нужно найти дублирующие текста
Решение:
Создадим макрос, который будет сравнивать содержимое двух колонок, в первой колонке будут ячейки с исходным текстом, во второй колонке будут формироваться ячейки с текстом который уникальный.
То есть, проходя каждую ячейку первой колонки, делаем сравнение со всеми ячейками второй колонки, и если совпадений не найдено, добавляем во вторую колонку уникальный текст из первой колонки, и в третей колонке маркируем для наглядности, 0 — нет дубля, 1 — дубль.
Теперь сам код
Sub Макрос1()
Application.DisplayAlerts = False
Row = 1 ' начальная строка
col1 = 1 ' колонка с исходным текстом
col2 = 2 ' колонка с уникальным текстом, формируется
col3 = 3 ' маркер, 0 - уникальный, 1 - дубль
max_rows = 500 'максимальный диапазон строк
x1 = 1
x2 = 1
For Each cel In Range(Cells(Row, col1), Cells(max_rows, col1))
Field1 = Trim(cel.Text)
If Len(Field1) > 0 Then
flg = False
For Each cel2 In Range(Cells(Row, col2), Cells(max_rows, col2))
Field2 = Trim(cel2.Text)
If Field1 = Field2 Then
flg = True
End If
Next cel2
If flg = True Then
Cells(x1, col3) = 1
Else
Cells(x1, col3) = 0
Cells(x2, col2) = Field1
x2 = x2 + 1
End If
x1 = x1 + 1
Else
Exit For
End If
Next cel
Application.DisplayAlerts = True
End Sub