Это делает именно то, что вы хотите, основываясь на снимке экрана, который вы дали
До
И после того, как я нажимаю кнопку "выделить дупс"
Верхняя часть - это бит, который вы можете настроить. В данный момент я смотрю на Col A и B, но вы можете обновить это, чтобы посмотреть Cols B и C или A и D и т.д.
Я также предоставил подробности и ссылку, чтобы повлиять на цвет подсветки (снова см. Комментарии в коде)
Sub HighlightDuplicates()
Dim transparent As Integer
transparent = -4142
Dim yellow As Integer
yellow = 27 ' colour index, see http://dmcritchie.mvps.org/excel/colors.htm for more details about setting the colour
Dim column1 As String
column1 = "A" 'Update me if you don't want to check for dupes in the A column
Dim column2 As String
column2 = "B" 'Update me if you don't want to check for dupes in the B column
Dim endOfRows As Boolean
moreRows = True
Dim currentCell As Integer
currentCell = 0
Do While (moreRows)
currentCell = currentCell + 1
Dim aValue As String
Dim bValue As String
aValue = Worksheets("Sheet1").Range(column1 & currentCell).Value
bValue = Worksheets("Sheet1").Range(column2 & currentCell).Value
'check it isn't already coloured
If (Worksheets("Sheet1").Range(column1 & currentCell).Interior.ColorIndex = transparent) Then
Dim moreInnerRows As Boolean
moreInnerRows = True
Dim currentInnerCell As Integer
currentInnerCell = currentCell
Dim isDupe As Boolean
isDupe = False
'Now to loop through the other rows
Do While (moreInnerRows)
currentInnerCell = currentInnerCell + 1
If (Worksheets("Sheet1").Range(column1 & currentInnerCell).Value = "" And Worksheets("Sheet1").Range(column2 & currentInnerCell).Value = "") Then
Exit Do
End If
If Worksheets("Sheet1").Range(column1 & currentInnerCell).Value = aValue And Worksheets("Sheet1").Range(column2 & currentInnerCell).Value = bValue Then
isDupe = True
Worksheets("Sheet1").Range(column1 & currentInnerCell).Interior.ColorIndex = yellow
Worksheets("Sheet1").Range(column2 & currentInnerCell).Interior.ColorIndex = yellow
End If
Loop
If (isDupe = True) Then
'Now we mark the original row as a dupe
Worksheets("Sheet1").Range(column1 & currentCell).Interior.ColorIndex = yellow
Worksheets("Sheet1").Range(column2 & currentCell).Interior.ColorIndex = yellow
End If
End If
If (Worksheets("Sheet1").Range(column1 & currentCell).Value = "" And Worksheets("Sheet1").Range(column2 & currentCell).Value = "") Then
Exit Do
End If
Loop
End Sub