假设我有以下表结构(A1:C3)
A B C
1 H1 H2 H3
2 1 1 3
3 4 5 4如何使用以下条件应用条件格式设置:
只有标头单元(H1,H2,H3)是着色的
。
注意:我不是在寻找VBA解决方案,因为我可以自己制作,但如果您有一些疯狂的1班轮,请告诉:)
注:我不想应用很多规则,如if x<0.3 red,__,if 0.3<x<0.6 orange等。
有什么干净的解决办法吗?
基于公式的值可以应用三色刻度吗?
发布于 2011-04-21 07:19:51
我想你是在找一些不幸不存在的时髦的东西。我只看到了两种选择。
您可以使用三种条件进行条件格式化,甚至可以只使用两个条件,如果您想使用默认的单元格颜色作为三个条件之一(例如,公式Is =(A2/A3)<0.3,公式Is =(A2/A3)<0.6,或者您希望阈值是什么)。您可以在Excel中的一个标头单元格上手动应用此fomatting,并将其复制到所有标头;或通过VBA应用它。
或者,您可以在VBA中为标头着色,并在工作表上放置一个按钮,该按钮调用代码来更新颜色。
With Range("A1")
For i = 1 To 3
colorscale = .Cells(2, i).Value / .Cells(3, i).Value
.Cells(1, i).Interior.Color = _
RGB(colorscale * 255, colorscale * 255, _
colorscale * 255) ' for example. Or pick your colors otherwise.
Next i
End With在我看来,第一个选项(条件格式)更适合,因为它将根据单元格值自动更新颜色。不过,我不得不承认,我不太明白你为什么要找比这个更“干净”的东西,因为它实际上是一个非常简单的解决方案。有两个条件构成“很多规则”吗?不是任何一段英语..。
发布于 2011-04-22 21:38:43
以下是让·弗朗索瓦·科贝特(Jean-Fran ois Corbett)的代码的改编,该代码从红、黄、绿梯度中提取颜色:
With Range("A1")
For i = 1 To 3
ColorScale = .Cells(2, i).Value / .Cells(3, i).Value
If ColorScale < 0.5 Then
red = 255
green = ColorScale * 2 * 255
Else
red = (1 - ColorScale) * 2 * 255
green = 255
End If
.Cells(1, i).Interior.Color = RGB(red, green, 0)
Next i
End Withhttps://stackoverflow.com/questions/5716442
复制相似问题