例如,工作表中有 100(行)x 20(列)个单元格,每个单元格有 5 条线。有些线是红色的,有些线标有删除线,等等。如何搜索所有红色的线?如何找到所有带删除线的线?如何仅通过 进行搜索SearchFormat
?
我试过 Excel find with format
,但它对单元格的一部分不起作用。如果所有 5 条线都是红色的,它可以找到它们;但如果只有 2 条线是红色的,其他 3 条线是正常的,它就找不到这 2 条线,match entire cell contents
即使不是检查。
答案1
您需要一个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