如果当前单元格为空,则为Excel条件格式设置公式

时间:2018-02-08 15:23:09

标签: excel excel-formula conditional-formatting

我试图在概念上尝试做一些看似简单的事情,但谷歌搜索没有透露任何解释如何操作的页面,NOR是否存在以及出现在" "所以不要打扰。我想要做的是在Excel中突出显示一列单元格并创建一个说明这一点的规则(伪代码):

If THIS cell is blank
   Change the text color to white and fill color to Red
   Display the text "[INFO NEEDED]" //(without quotes)

如果单元格不是空白,则不会触发规则。

不幸的是,当我在网上搜索excel conditional formatting formula "this cell" blank时,我保留了两种不同的答案:

  1. "如何基于其他单元格格式化单元格"以及

  2. "如何格式化空白单元格" (但不使用公式方法

  3. 要格外明确:我不会*根据其他单元格中的值来查找如何执行此操作,也不会使用"仅格式化包含"方法

    我意识到它可能只是不可能,但我想由Stack Overflow上的读者运行它,看看是否可以做到这一点,但不是经常,并且可能会深入了解原因

2 个答案:

答案 0 :(得分:4)

使用条件格式化不可能使这个伪代码工作。 您可以完成要求的第一部分,即检查条件公式是否为单元格为空(ISBLANK(地址))。但是,您无法更改单元格的值,因为:1)条件格式化仅处理格式化; 2)插入文本后,单元格将不再为空白; 3)Excell公式不允许使用循环引用,即取决于同一公式中的值的结果。您可以做的是使用VBA执行此操作(并更改函数内的单元格颜色,而不是引用条件格式)。请在下面找到建议的代码。 A1必须替换为您需要检查的单元格的地址,并且该文件必须保存为.xlsm才能启用宏。

Private Sub Worksheet_Change(ByVal Target As Range)
   If (IsEmpty(Range("A1").Value) = True) Then
      Range("A1").Value = "[INFO NEEDED]"
      Range("A1").Interior.Color = vbRed
      Range("A1").Font.Color = vbWhite
    Else
      Range("A1").Interior.Color = vbWhite
      Range("A1").Font.Color = vbBlack
   End If
End Sub

答案 1 :(得分:3)

抓住这个:

我宁愿尝试解决问题的,而不是向您提供此特定解决方案。您似乎想要阻止用户输入空白单元格。

为什么不使用数据验证甚至不允许空白单元格,而不是显示错误消息并在单元格为空时更改格式?

您可以将数据验证设置为不允许空白单元格,并在用户尝试输入空白单元格时显示错误消息。见下文。

enter image description here

enter image description here

现在,如果我尝试删除此单元格的内容,则会出现以下消息框:

enter image description here

同样,我意识到这并没有完全回答你的问题,但它可能提供了另一种解决方案。