
Например, в таблице есть 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