我想做类似的事情:
=iif(A1>10,backcolor = black,backcolor = green)
我想要一个不是巫师的公式。
答案 0 :(得分:3)
您应该使用条件格式,而不是使用公式。 选择相应的列,然后转到主页 - >条件格式 - >突出显示单元格规则。之后,您可以定义条件以及单元格应该变成哪种颜色。
有关更详细的说明,请访问以下链接。 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
修改强>
据我所知,使用公式无法改变细胞的颜色。如果有人知道该怎么做,请发帖!同时,这是一个关于如何使用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的记录来增加时间!如果有人知道更好的方式,请随时启发我们!
答案 1 :(得分:0)
您可以将公式与事件宏结合使用。选择一个单元格,说 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 (即使文本不可见)中对文本进行检验,并相应地调整背景颜色。
因为它是工作表代码,所以很容易安装和自动使用:
如果您有任何疑虑,请先在试用工作表上试用。
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除宏:
要了解有关宏的更多信息,请参阅:
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
必须启用宏才能使其生效!