如何通过Excel中的通配符文本中的SearchFormat进行搜索?


2

例如,一张纸上有100个(行)×20(列)单元格,每个单元格有5行。有些线条为红色,有些线条标有穿透线等。如何以红色搜索所有线条?我怎样才能找到所有带有删除线的线?我怎样才能搜索 SearchFormat

我试过Excel find with format,但它不适用于细胞的一部分。如果所有5条线都是红色的,它可以找到它们;但如果只有2行红色和其他3行是正常的,它就找不到2行,即使是 match entire cell contents 检查。


2
是否匹配整个单元格内容框?
soandos

这很可能需要是一个宏。我在调查它。当您找到这些子串时,您想要做什么?突出细胞?把它们移到别的地方?重新格式化?
Raystafarian

@soandos,不,我没有检查'匹配整个单元格内容'
Landy

@Raystafarian,当我找到这些子串时,我不得不逐一审查它们。有些将被删除,有些将被重新格式化。如果Excel可以全部搜索,我可以逐个执行此操作。
Landy

Answers:


3

你需要一个 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

经过测试和工作, 对于颜色
Raystafarian
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.