У меня возник такой вопрос. Как можно выделить дубликаты в Excel с помощью макроса, если массивы разделены друг от друга (т.е.например, Range("A1:B6", "C1:D6")). Я нашла следующий макрос по этой ссылке https://www.planetaexcel.ru/techniques/14/198/ . Всё работает идеально в том случае, если я выбираю весь массив данных. А мне бы хотелось выбрать Range.
Вся проблема в том, что CountIf не работает на разделённые массивы данных. Для этого я нашла ему дополнение WorksheetFunction.Sum(WorksheetFunction.Countif(Range, Cell.Value)>1) . К сожалению, это всё равно не работает полностью на весь Range данных и более того выделяет некоторые дупликаты разным цветом.
Подскажите, пожалуйста, есть ли другой способ программирования этой задачи?
Да, код работает на выбранный диапазон. Но я имела ввиду кое-что другое. Что если мне нужно выделить массивы отдельные друг друга. Я на всякий случай ещё прикрепила пример, если ещё кому-то будет интересен вопрос
Sub DuplicatesColoring()
Dim rCell As Range, Counter As Long
Dim Dupes() 'объявляем массив для хранения дубликатов
ReDim Dupes(1 To Selection.Cells.Count, 1 To 2)
Selection.Interior.ColorIndex = -4142 'убираем заливку если была
i = 3
For Each cell In Selection
For Each rCell In Selection
If rCell = cell Then Counter = Counter + 1
If Counter > 1 Then
For k = LBound(Dupes) To UBound(Dupes)
'если ячейка уже есть в массиве дубликатов - заливаем
If Dupes(k, 1) = cell Then cell.Interior.ColorIndex = Dupes(k, 2)
Next k
'если ячейка содержит дубликат, но еще не в массиве - добавляем ее в массив и заливаем
If cell.Interior.ColorIndex = -4142 Then
cell.Interior.ColorIndex = i
Dupes(i, 1) = cell.Value
Dupes(i, 2) = i
i = i + 1
End If
End If
Next
Counter = 0
Next cell
End Sub