如何使用公式为 Excel 中的单元格着色?

How to color a cell in Excel using a formula?

我想做这样的事情:

=iif(A1>10,backcolor = black,backcolor = green)

我要的是公式而不是向导。

您应该使用条件格式,而不是使用公式。 Select 相应的列并转到 主页 -> 条件格式 -> 突出显示单元格规则。 之后你可以定义条件,以及单元格应该变成哪种颜色。

如需更详尽的解释,请访问以下 link。 https://support.office.com/en-us/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f?ui=en-US&rs=en-US&ad=US

编辑:

据我所知,使用公式更改单元格的颜色是不可能的。如果有人知道怎么做,请post!同时,这是一个关于如何使用 VBA.

将颜色更改为绿色的小例程
Private Sub changecolor()
Dim i As Long: i = 1
 Dim LastRow As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
Do Until i = LastRow
    With Range("A" & i)
        If .Value > 10 Then
            Cells(i, 1).Interior.ColorIndex = 10
        End If
    End With
i = i + 1
Loop
End Sub

注意: 这个公式每 100k 行大约需要 3~6 秒,这可能会很慢,具体取决于应用程序。 经过 运行 一个小测试后,我发现了以下运行时间:

164269ms for 1000000 records with 45,4% coloured : ~16.4s/100k records
349193ms for 1000000 records with 100% coloured : ~34.9s/100k records
9016ms for 1000000 records with 0% coloured : ~0.9s/100k records

似乎使用 Cells(i, 1).Interior.ColorIndex 以惊人的 34s/100k 记录增加了时间!如果有人知道更好的方法,欢迎不吝赐教!

您可以将公式与 事件宏 结合使用。选择一个单元格,比如 B2 并输入公式:

=IF(A1>10,"black","green")

然后格式化B2自定义;;;
这样会隐藏显示的文字
然后将以下事件宏放置在工作表代码区域中:

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
    With Range("B2")
        If .Value = "green" Then
            .Interior.Color = RGB(0, 255, 0)
        Else
            .Interior.Color = RGB(0, 0, 0)
        End If
    End With
Application.EnableEvents = True
End Sub

每次重新计算工作表时,宏都会 运行。它将检查 B2 中的文本(即使文本不可见)并相应地调整背景颜色。

因为它是工作表代码,所以安装和自动使用非常容易:

  1. 右键单击 Excel window
  2. 底部附近的选项卡名称
  3. select 查看代码 - 这会弹出一个 VBE window
  4. 粘贴内容并关闭 VBE window

如果您有任何疑虑,请先在试用工作表上尝试一下。

如果您保存工作簿,宏也会随之保存。 如果您使用的 Excel 版本晚于 2003,则必须保存 文件为 .xlsm 而不是 .xlsx

删除宏:

  1. 如上所述调出 VBE windows
  2. 清除代码
  3. 关闭 VBE window

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能运行!