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

我想做一些事情:

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

我想要一个公式不是向导。

而不是使用公式,你应该去条件格式。 select适当的列,然后进入首页 – >条件格式 – >突出显示单元格规则。 之后,您可以定义条件,以及单元格的颜色。

有关更广泛的解释,请访问以下链接。 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=我们

编辑:

据我所知,使用公式不可能改变单元格的颜色。 如果有人知道如何做,请发布! 同时,这是一个使用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秒左右,根据具体应用可能会比较慢。 运行一个小testing后,我发现以下运行时间:

 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 ups与高达Cells(i, 1).Interior.ColorIndex / 100klogging的时间! 如果有人知道更好的方法,请随时启发我们!

您可以将公式与事件macros一起使用。 选B2,然后input公式:

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

然后格式化B2 Custom ;;;
这将隐藏显示的文字。
然后将下面的事件macros放在工作表代码区域中:

 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 

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

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

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

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

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. closuresVBE窗口

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

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

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

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

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

macros必须启用这个工作!