【问题标题】:How to highlight cells if they match neighboring cells如果单元格与相邻单元格匹配,如何突出显示单元格
【发布时间】:2017-03-26 19:05:33
【问题描述】:

我经常处理跨多列的数据,需要一种方便的方法来突出显示特定列中包含相同值的多行,但我需要在突出显示和未突出显示之间交替。

例如,我将在 A 列中有几行数据,例如: 700105862 700105862 700105862 700103235 700103235 700108783 700108783 700108783

我想要做的是突出显示前三行 (700105862),然后不突出显示 700103235,然后再次突出显示 700108783。 我想知道是否有一个条件格式公式可以使这成为可能。

任何帮助将不胜感激!

谢谢,

【问题讨论】:

  • 这是 Excel 吗?看不到任何条件格式可以实现这一点。所以你必须研究VBA方法。

标签: vba conditional-formatting


【解决方案1】:

如果你的数字被分成总是不同的数字重复块,那么你可以使用这个 VBA 代码:

Sub main()
    Dim item As Variant
    Dim startRow As Long
    Dim okHighlight As Boolean

    With Range("A1", Cells(Rows.count, 1).End(xlUp))
        For Each item In GetUniqueValues(.Cells).Items
            If okHighlight Then .Range(.Cells(startRow, 1), .Cells(item, 1)).Interior.ColorIndex = 48
            startRow = item + 1
            okHighlight = Not okHighlight
        Next
    End With
End Sub


Function GetUniqueValues(rng As Range) As Dictionary
    Dim cell As Range
    Dim dict As Dictionary

    Set dict = New Dictionary
    With dict
        For Each cell In rng
            .item(cell.Value) = cell.row - rng.Rows(1).row + 1
        Next
    End With
    Set GetUniqueValues = dict
End Function

条件格式方法可以使用 helper

假设:

  • 您的数据位于 A 列并从第 2 行开始

  • B 列是空闲的

然后:

  • helper列B单元格中写下以下公式:

    =IF(A2<>A1,B1+1,0)

  • 使用以下公式将条件格式应用于 A 列:

    =INT(B2/2)=B2/2

    并选择您喜欢的单元格突出显示格式

【讨论】:

  • @EricJang,你通过了吗?
  • 嗨@user3598756,宏运行良好。我不得不稍微编辑脚本以满足我的特定需求,但我想我理解它的逻辑。非常感谢您的帮助!!
【解决方案2】:

当然,如果您知道要突出显示的范围,只需将条件格式设置为介于 x 和 y 值之间。用你没有得到的内容评论这个问题,我会相应地修改答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2021-12-30
    相关资源
    最近更新 更多