5

假设我有以下表结构(A1:C3)

     A   B   C
1    H1  H2  H3
2    1   1   3
3    4   5   4

如何应用具有以下条件的条件格式:

  • 只有标题单元格(H1、H2、H3)是彩色的
  • 着色方案是 2 或 3 色阶
  • 用于计算颜色的值应为 A2/A3、B2/B3、C2/C3(范围为 0-1)

注意:我不是在寻找 VBA 解决方案,因为我可以自己制作,但如果你有一些疯狂的 1 班轮,请告诉 :)
注意:我不想应用很多规则,例如if x<0.3 redif 0.3<x<0.6 orange等等。

有什么干净的解决方案吗?
可以根据公式的值应用 3 色标吗?

4

2 回答 2

1

我认为您正在寻找不幸的是不存在的漂亮东西。我只看到两个选项。

您可以使用三个条件进行条件格式设置,如果您想使用默认单元格颜色作为三个条件之一,甚至可以只使用两个条件(例如,公式 Is =(A2/A3)<0.3,Formula Is =(A2/A3)< 0.6,或任何你想要的阈值)。您可以在 Excel 中的一个标题单元格上手动应用此格式,并将其复制到所有标题;或通过 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-21T07:19:51.073 回答
0

这是对 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 With
于 2011-04-22T21:38:43.753 回答