将条件格式应用于范围,但仅将条件为真的格式化单元格

时间:2017-05-03 07:47:04

标签: excel-vba excel-2013 conditional-formatting vba excel

我有一张看起来像这样的表:

Labels

有色细胞需要根据其值来定义特定颜色。我目前正在使用条件格式来实现这一点,但我只能将它应用于单个列而不是整个范围A:G。例如,这是我的A列公式,其值应为浅蓝色:

=OR($A1="CA515",$A1="CA525")

适用于:

=$A:$A

使用上面的公式,如果A列中的任何单元格包含值CA515或CA525,则单独的单元格为浅蓝色。有没有办法使用单个条件格式化公式,如果A:G范围内的任何单元格包含值CA515或CA525,只有该单元格是浅蓝色的话?或者我是否必须单独将公式应用于每一列,或者甚至可能使用VBA?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

你可以避免在这里使用VBA * ...删除条件语句中的美元符号,它应该是

=OR(A1="CA515", A1="CA525")

美元符号指定参考是相对的还是绝对的。要想象它是如何工作的,请尝试在单元格中键入这些公式并将单元格的一角向下拖动到自动填充:

=A1  'Autofilling this down will give =A2, =A3, ...
=$A1 'Autofilling this down will give =$A1, =$A1, ...

因此,删除$后,您的格式条件应该分散在整个范围内。要设置范围,请将“适用于”更改为$A:$G

format

注意:像这样的大范围内的许多条件格式会严重影响文档的速度。考虑至少限制不同格式的数量,或它检查的行数。

*尽管上面的方法确实避免了VBA,但是在VBA中编写自己的格式化例程可能会更快,因为它不需要如此频繁地进行检查,并且不会因为移动范围而变得不受影响格式。