如何在Excel中的验证结果上添加条件格式?

时间:2014-01-06 21:03:08

标签: excel excel-vba excel-formula vba

如果单元格无效,我想更改单元格的格式。在这种情况下,“有效”表示单元格未通过数据验证规则。

我问这个问题,因为我找不到答案。我最终解决了它。我会发布我的回答,看看有人想评论或提供更好的答案!

2 个答案:

答案 0 :(得分:3)

这是一个基本的大纲,在本周晚些时候,当我有更多时间时,我希望将其转化为更好的格式化答案。

  1. 创建数据验证规则。在我的例子中,我引用了另一个工作簿中的数据列表。
  2. 关闭无效数据的提醒,我们将使用条件格式显示数据无效。
  3. 为具有数据验证规则的单元格添加条件格式设置选项。为此,请转到管理规则 - >新规则,在公式中,使用= IS_VALID(CELL(“row”,C4),CELL(“col”,C4)),其中C4是您要开始输入数据的第一个单元格。
  4. 创建一个类似于
  5. 的自定义函数

    这样:

    Public Function IS_VALID(row, column) As Boolean
    IS_VALID = Not Cells(row, column).Validation.value
    End Function
    

    最后,您可以将条件格式设置效果设置为您想要的任何效果,例如将单元格着色为红色。这个答案对我有用,我想不要忘记把它添加到SO中,但是现在没有时间把它变得很好。

答案 1 :(得分:0)

如果要引用另一个工作簿中的列表,则将数据验证规则重新创建为条件格式设置规则更为简单。

如果您的条件格式设置从Sheet1的单元格A1开始,并且列表包含在Sheet2的A1:A10中,那么您的条件格式设置规则将是:

=AND($A1<>0,COUNTIF(Sheet2!$A$1:$A$10,$A1)<1)

如果该单元格的值未出现在源列表中且不为空白,则会突出显示该单元格。

很显然,对于基于非列表的数据验证,您可以以相同的方式提出一个等效公式。

您可以通过为数据验证和条件格式设置所引用的列表设置一个命名范围来使事情变得更加健壮,这样,如果列表范围增大,则只需要在一个位置进行编辑(名称管理器),它将同时更新数据验证和条件格式设置范围。