Получить условно отформатированные ячейки (DupeUnique = xlDuplicate) - PullRequest
0 голосов
/ 21 января 2019

Я выделяю все повторяющиеся ячейки в моем выделении, используя:

Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
    .Color = -16383844
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With

Теперь я не просто хочу выделить эти ячейки, но я хочу получить массив со всеми затронутыми ячейками. Я попытался пройтись по своему выбору и проверить свойство Interior, но на это уходит много времени. Я ищу что-то намного быстрее.

1 Ответ

0 голосов
/ 21 января 2019

Функция, возвращающая список (Коллекция) всех значений в Excel Selection, соответствующих этому условию:

If myCell.DisplayFormat.Interior.Color = myColor Then

была бы весьма полезна:

Sub TestMe()

    '...OP Code
        .TintAndShade = 0
    End With

    Dim unique As Collection
    Set unique = ResultList(Selection)
    If unique.Count > 1 Then Debug.Print unique.Item(2)

End Sub

Public Function ResultList(selectedRange As Range, _
            Optional myColor As Long = 13551615) As Collection

    Dim myCell As Range
    Dim myResultList As New Collection

    For Each myCell In selectedRange
        If myCell.DisplayFormat.Interior.Color = myColor Then
            myResultList.Add myCell.Value2
        End If
    Next myCell
    Set ResultList = myResultList

End Function

Таким образом, Selection избегается, и его можно использовать дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...