【问题标题】:Highlight cells where the value is the same 3 consecutive times突出显示值连续 3 次相同的单元格
【发布时间】:2017-12-28 01:16:21
【问题描述】:

我正在尝试突出显示 H 列中值连续 3 次相同的单元格,例如

  1. 一个
  2. 一个
  3. P
  4. P
  5. P
  6. B
  7. B

3 P 会以红色突出显示,但不会突出显示 2 A 或 2B。这在 VBA 中是可行的还是使用我不知道的公式,但我一直在努力解决它一段时间。我敢肯定它可能很简单,我只是陷入了一个循环

任何帮助将不胜感激

【问题讨论】:

  • 这绝对可以使用 VBA。你已经尝试过什么?
  • 主要是尝试 OR 函数的不同变体并尝试获取条件格式来完成这项工作。到目前为止,VBA 中还没有任何内容
  • 我不是条件格式方面的专家。我想这是可以做到的,但这不是我能够提供太多帮助的事情。我会研究一个 VBA 解决方案,这似乎会更简单,尽管其他对条件格式有更多了解的人可能不同意。您有任何 VBA 经验吗?
  • 我过去做过一些 VBA,但绝不是天生的。您有没有想到的解决方案,还是有点棘手?

标签: excel vba highlight


【解决方案1】:

条件格式有点棘手。你可以选择H3,试试这个公式:

= OR( AND(H3=H1, H3=H2), AND(H3=H2, H3=H4), AND(H3=H4, H3=H5) )

然后将“适用于”更改为整个范围。

更新

= OR( AND(H1="P",H2="P",H3="P"), AND(H2="P",H3="P",H4="P"), AND(H3="P",H4="P",H5="P") )

【讨论】:

  • 感谢 Slai,这非常有效,但是是否可以仅在单元格包含 P 时突出显示它,偶尔会有 3 个 N 或 B,我们只是试图专注于 P
  • Ah Brilliant 完美运行 - 非常感谢@Slai
【解决方案2】:

只要在数据开始的位置上方有几行...

【讨论】:

    【解决方案3】:

    我没有测试太多的快速代码,但试试这个:

        Sub Find_ThreeInARow()
        Dim column1 As Range
        Dim x As Range
        Dim y As Range
        Dim z As Range
    
        Set column1 = Application.InputBox("Select Column to Evaluate", Type:=8)
        If column1.Columns.Count > 1 Then
            Do Until column1.Columns.Count = 1
                MsgBox "Please select only 1 column."
                Set column1 = Application.InputBox("Select Column to Evaluate", Type:=8)
            Loop
        End If
    
        If column1.Rows.Count = 65536 Then
            Set column1 = Range(column1.Cells(1), column1.Cells(ActiveSheet.UsedRange.Rows.Count))
        End If
    
        For Each x In column1
            'Exit when we reach an empty cell
            If IsEmpty(x.Value) Then
                Exit Sub
            End If
    
            Set y = x.Offset(1, 0)
            Set z = x.Offset(2, 0)
    
            'Compare this cell to the next two in the column
            If x = y And x = z Then
                x.Interior.Color = vbYellow
                y.Interior.Color = vbYellow
                z.Interior.Color = vbYellow
            End If
        Next x
        End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2015-09-13
      • 2021-09-16
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多