Как выполнить поиск по SearchFormat в тексте с подстановочными знаками в Excel?

Как выполнить поиск по SearchFormat в тексте с подстановочными знаками в Excel?

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

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

решение1

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

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

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

Связанный контент