2

Например, на листе 100 ячеек (строка) x 20 (столбец), а каждая ячейка имеет 5 строк. Некоторые строки выделены красным, некоторые отмечены зачеркиванием и т.д. Как найти все строки красным цветом? Как я могу найти все строки с перечеркнутым? Как я могу искать только по SearchFormat?

Я пробовал найти Excel find with format , но он не работает для части ячейки. Если все 5 строк выделены красным, он может их найти; но если только 2 строки в красном и другие 3 строки нормальны, он не может найти 2 строки, даже если match entire cell contents не проверено.

1 ответ1

3

Вам понадобится решение VBA для этого:

Вот пример макроса, с которого можно начать, который ищет на активном листе (начиная с одной ячейки справа от активной ячейки) ячейки, содержащие текстовые константы, а затем ищет текст в ячейке по одному символу за раз для красного. Он останавливается и выбирает первую найденную ячейку, содержащую красный текст

Sub FindColorInCells()
    Dim n As Long
    Dim i As Long, j As Long
    Dim cl As Range
    Dim r As Range

    Set r = ActiveSheet.UsedRange
    i = ActiveCell.Row - r.Row + 1
    If i > r.Rows.Count Or i < 0 Then i = 1
    j = ActiveCell.Column - r.Column + 1
    If j > r.Columns.Count Or j < 0 Then j = 1
    i = (r.Columns.Count * (i - 1) + j) Mod r.Cells.Count + 1
    j = r.Cells.Count
    Do While i <> j
        With r(i)
            If Not .HasFormula Then
                If Len(.Value) > 0 Then
                    If TypeName(.Value) = "String" Then
                        For n = 1 To .Characters.Count
                            If .Characters(n, 1).Font.ColorIndex = 3 Then
                                ' found red
                                .Select
                                Exit Sub
                            End If
                        Next
                    End If
                End If
            End If
        End With
        i = i Mod j + 1
    Loop
End Sub

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