【问题标题】:How to do conditional formatting per row?如何对每行进行条件格式化?
【发布时间】:2020-01-26 21:30:29
【问题描述】:

如何对每行进行条件格式设置?我目前正在尝试比较数据的大叉积,但只能将每一行中的数据与同一行中的其他数据进行比较。我试图弄清楚如何为大量选择(12 列和几百行)每行应用条件格式(3 色标度)。最简单的方法是什么?

举个例子,我可能有一个看起来像这样的表格:

r1 | 5    | 6    | 7    | 8
r2 | 10   | 11   | 12   | 13
r3 | 2000 | 3100 | 5400 | 1200

那么,我将如何进行条件格式设置,以使 5、10 和 1200 成为相应行的最低值,而 8、13、5400 将成为相应行的最高值?

【问题讨论】:

  • 您要定义的确切条件是什么?小于 5 的行上的所有值? B 列中的值
  • 我正在尝试对列 B 到 E 之间的每一行使用 3 色标度格式(在本例中)。
  • 每行的条件格式必须独立于所有其他行应用。它是相同的 3 色标度格式,但仅适用于单行的范围。我的建议是一个快速的 VBA 宏来为每一行应用格式。否则,在这种情况下,这是一个手动过程。
  • 最简单的方法是为一行创建 CF 规则(3 色标度格式),然后复制格式并将其粘贴到您要应用它的每一行中。不好的是,您将为每一行创建 1 条规则,因此如果您有 1000 行数据,您将有 1000 条 cf 规则。

标签: excel


【解决方案1】:

这里有一些额外的 VBA 代码,用于有条件地单独设置每一行的格式。

Option Explicit

Sub CFEachRow()
    Dim singleRow As Range
    For Each singleRow In Sheet1.UsedRange.Rows
        FormatThisRow singleRow
    Next singleRow
End Sub

Private Sub FormatThisRow(ByRef thisRow As Range)
    With thisRow.FormatConditions
        .Delete
        .AddColorScale ColorScaleType:=3
        With .Item(1)
            .SetFirstPriority
            .ColorScaleCriteria(1).Type = xlConditionValueLowestValue
            With .ColorScaleCriteria(1).FormatColor
                .Color = 7039480
                .TintAndShade = 0
            End With
            .ColorScaleCriteria(2).Type = xlConditionValuePercentile
            With .ColorScaleCriteria(2).FormatColor
                .Color = 8711167
                .TintAndShade = 0
            End With
            .ColorScaleCriteria(3).Type = xlConditionValueHighestValue
            With .ColorScaleCriteria(3).FormatColor
                .Color = 8109667
                .TintAndShade = 0
            End With
        End With
    End With
End Sub

【讨论】:

    【解决方案2】:

    您需要有色标,还是只需要突出显示每行的最大值和最小值?

    如果是前者,那么我认为 VBA 可能是您唯一的选择,因为 PeterT 已经为此提供了一些代码。如果是后者,那么使用VBA就大材小用了,你可以直接使用条件格式UI来达到你想要的效果。

    假设您的上述数据在单元格 A1:D3 中,然后将其全部选中并创建 A1=MIN($A1:$D1) 的“使用公式确定要格式化的单元格”规则,并将格式更改为绿色/红色/任何填充等。然后用公式A1=MAX($A1:$D1) 创建一个类似的规则,并适当地格式化

    【讨论】:

      猜你喜欢
      • 2018-04-11
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2023-01-17
      • 2013-05-19
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多