1

Мне нужно выделить дубликаты строк в моем листе Excel 2013. Я могу выделить дублирующиеся значения ячеек в строках, используя метод «Highlight -> Duplicate», но я пытаюсь выделить целые строки, которые являются дубликатами. Если для этой строки отличается только одна ячейка, то в моем случае она не считается дубликатом.

Пример:

Name    Task     Phone Number
A       Do 1     12345
B       Do 1     12345
A       Do 2     12345
B       Do 1     12345

Для приведенной выше таблицы должны быть выделены только строки 2 и 4.

1 ответ1

0

Вы просите выделить строки, но я предполагаю, что это может быть проблематично (хотя вы не описываете, почему вы этого хотите). Предполагая, что у вас есть 10 строк, и многие из них соответствуют другим строкам, ваш лист будет выглядеть

Проблема в том, что вы не представляете, какая строка соответствует какой строке!

У вас также будет проблема при следующем запуске сценария, выделение будет сохраняться.

Поэтому я предлагаю решение с дополнительным столбцом информации (снимок экрана ниже):

Sub WalkThePlank()

Dim startRow As Integer
startRow = 2                 'Update this to lead us to the treasure

Dim row As Integer
row = startRow

Do While (Range("A" & row).Value <> "")

    Dim innerRow As Integer
    innerRow = row + 1

    Dim name As String
    Dim task As String
    Dim phone As String

    name = Range("A" & row).Value
    task = Range("B" & row).Value
    phone = Range("C" & row).Value

    Do While (Range("A" & innerRow).Value <> "")


        If (Range("A" & innerRow).Value = name And Range("B" & innerRow).Value = task And Range("C" & innerRow).Value = phone) Then
            Range("D" & row).Value = Range("D" & row).Value & innerRow & ", "
            Range("D" & innerRow).Value = Range("D" & innerRow).Value & row & ", "
            'Rows(row).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING

            'Rows(innerRow).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING
        End If

    innerRow = innerRow + 1
    Loop

    row = row + 1
Loop

End Sub

Это то, что он делает

Сделайте это с копией вашего файла - функция отмены отсутствует!

Обратите внимание, что в коде есть две строки, показывающие, какую строку нужно раскомментировать (удалите первую ' на этих строках, и они будут выделены)

Как добавить VBA в MS Office?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .