【问题标题】:Excel (conditional formatting)Excel(条件格式)
【发布时间】:2017-02-22 19:11:20
【问题描述】:

早安,

我有一个数据集,如下所示(示例)。我需要突出显示 A1 和 A2 之间的最高数字,然后是 A3 和 A4 之间的最高数字,A5 和 A6 之间的最高数字,依此类推。 B列和C列等相同。 我想用绿色突出显示最高的,用红色突出显示最低的?有任何想法吗。这是一个很大的数据集,手动操作会花费很长时间。

【问题讨论】:

  • 您是否尝试过任何条件格式?您可能需要一两个公式来检查 A1 是否大于 A2 而 A2 是否小于 A1
  • 我同意这会起作用,但是,如何将公式添加到每两个块中?因为如果我将公式向下拖动,它将检查 A2 和 A3 之间,而我希望它检查 A1 和 A2,然后检查 A3 和 A4,所以基本上它应该跳过一行。有没有宏可以帮助我解决这个问题?

标签: excel formatting conditional


【解决方案1】:

以下链接问题的答案是回答您问题的开始。您需要使用 VBA 执行此操作,如下所示:

Do While i <= cols
    Do While j <= rows
         //set conditional formatting for range ij:i(j+1)
         j = j + 2
    Loop
Loop

我会看看是否可以为您创建一个特定的脚本。

Format Top 3 and Bottom 3 Values for each row

编辑: 我在我创建的一个小数据集上对此进行了一些测试。它似乎按要求工作。您只需要调整“cols”和“rows”以准确表示您的数据集。

EDIT2:代码已稍作修改以解决我发现的一个小问题。

Sub Conditions()
Dim i As Integer, j As Integer, cols As Integer, rows As Integer
cols = 2
rows = 10
i = 1
j = 1

Do While i <= cols
    Do While j <= rows
         With Range(Cells(j, i), Cells(j + 1, i)).FormatConditions.Add(xlTop10)
                .SetFirstPriority
                .TopBottom = xlTop10Top
                .Rank = 1
                .Percent = False
                With .Interior
                   .PatternColorIndex = xlAutomatic
                   .Color = RGB(0, 255, 0)
                   .TintAndShade = 0
                End With
            End With
         j = j + 2
    Loop
    i = i + 1
    j = 1
Loop
i = 1
j = 1


Do While i <= cols
    Do While j <= rows
         With Range(Cells(j, i), Cells(j + 1, i)).FormatConditions.Add(xlTop10)
                .SetFirstPriority
                .TopBottom = xlTop10Bottom
                .Rank = 1
                .Percent = False
                With .Interior
                   .PatternColorIndex = xlAutomatic
                   .Color = RGB(255, 0, 0)
                   .TintAndShade = 0
                End With
            End With
         j = j + 2
    Loop
    i = i + 1
    j = 1
Loop

End Sub

【讨论】:

  • 谢谢,那太好了。
  • 我已经使用 VBA 脚本编辑了我的答案,该脚本是从 stackoverflow 的其他帖子中拼凑而成的。希望这对你有用。
  • 发现了一个小错误,它创建了许多多余的条件格式规则,已修复。
  • 非常感谢!它给了我一个错误 .TopBottom = xlTop10Top
  • 抱歉,我自己还在想办法。只是挑战自己为他人研究和解决问题。再次为您编辑脚本。
猜你喜欢
  • 2020-11-16
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 2013-12-24
相关资源
最近更新 更多