如果找到某些文本,则突出显示单元格+相邻的2个单元格

时间:2015-05-01 16:44:07

标签: excel vba excel-vba

如果任何单元格包含文本“example”,则此单元格+右侧同一行上的两个单元格将被突出显示。

例如

B5包含“示例”,b5,c5,d5需要突出显示为橙色 b9包含“example”,b9,c9,d9需要突出显示为橙色。

在整张纸上等等。多行和多列可以包含特定文本。

任何帮助,例子表示赞赏。

Private Sub CommandButton1_Click()

    row_number = 4

    Do

        DoEvents
        row_number = row_number + 1
        swing_data = Sheet1.Range("B" & row_number)

        If InStr(swing_data, "Test") >= 1 Then

            With Range("B" & row_number).Offset(, 2).Interior
                .Pattern = x1solid
                .PatternColorIndex = x1automatic
                .Color = 65535
                .PatternTintAndShade = 0
            End With

        End If

    Loop Until swing_data = ""      

End Sub

这不是突出显示右边的2个单元格,如果有一个空白单元格则停止。它也只在一列上工作。需要处理B,E,N,Q,Z,AC,

更改了此行

&LT; <code>With Range("B" & row_number).Offset(, 2).Interior代码&GT;

阅读<code>With Range("B" & row_number).resize(, 3).Interior代码&gt;

它有效。
在这个中包含多个列是否更容易??

2 个答案:

答案 0 :(得分:0)

如果要避免使用VBA,可以使用条件格式执行此操作。选择要将格式应用于的单元格(例如B1:D10),单击条件格式 - &gt;新规则...... - &gt;使用公式确定要格式化的单元格。使用此公式

=EXACT($B1,"example")

列前面的$确保只查看该列,该行将是独立的。然后,您需要将格式更改为您想要的任何内容。在您的情况下,将填充更改为橙色。

答案 1 :(得分:0)

条件格式:

由于多列可能包含您的条件,您需要更复杂的公式(条件格式化 - 使用公式......):=or(iferror(rc[-1]="example",false),iferror(rc[-2]="example",false),rc="example") - 注意:我在输入条件格式之前切换到R1C1参考样式它在那里清楚; iferror是必要的,以使公式也在第一和第二列工作。

VBA:

你可以使用VBA查找对象循环遍历所有实例并在那里更改格式(我认为内置帮助并且可能记录一些简短的宏为您提供足够的信息来创建它)