【问题标题】:Excel Highlight Second Entry within a Range of CellsExcel 突出显示单元格范围内的第二个条目
【发布时间】:2021-12-22 10:09:55
【问题描述】:

我正在尝试突出显示一系列单元格内的第二个条目(及以后)的单元格。我很想在我的考勤跟踪中实现此功能。

例如,在下图中,我有“Peter”、“John”和“Tom”。如果只有一个人缺席,我不需要强调任何内容,如下图。

但是,如果“Tom”或“John”是第二个被输入为“Not in”(缺席)的人,我想突出显示单元格,如下所示。

最后,如果最后一个人也缺席,我也想突出显示,如下图所示

C 列中的值不限于这些短语(“Absent”、“Away”、“Not in”)。

从另一个角度来看,我想突出显示单元格范围内的第二个和后面的条目。有没有办法在不使用 VBA 或宏的情况下实现这样的功能?可以使用条件格式来完成吗?

请指教。非常感谢!

【问题讨论】:

    标签: excel cell highlight conditional-formatting


    【解决方案1】:

    您可以使用 Worksheet_Change 事件将时间戳添加到帮助列。就我而言,我将其添加到 D 列:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim myrange As Range
        Set myrange = Range("C3:C9")
        If Not Application.Intersect(myrange, Range(Target.Address)) Is Nothing And Target.Count = 1 Then
                If Target.Value = "" Then
                    Target.Offset(0, 1).Value = ""
                Else
                    Target.Offset(0, 1).Value = Now()
                End If
        End If
    End Sub
    

    然后在 C 列上使用条件格式,如下所示:

    =$D3>=SMALL($D$3:$D$9,2)
    

    这将突出显示时间戳大于第二小的时间戳的任何行(忽略空白)。

    这是一个实际应用的示例。出于说明目的,我将输入内容的顺序放在 C 列中,而不是“缺席”、“不在此处”等。

    【讨论】:

    • 感谢您的回复!但是,我也考虑第一个条目不在单元格 C2(彼得)的情况,它可以是 C3(第一个条目),然后是 C2(第二个条目)或 C4(第一个条目),然后是 C2(第二个条目)。无论首先填充哪个单元格,都可以这样做吗?谢谢!
    • 所以你要求根据输入的时间来突出显示,而不是根据它的行位置?只是想确保我理解。
    • 是的,基于输入的时间。对困惑感到抱歉。我在考虑多个条件格式规则是否可行,但我无法理解。
    • 条件格式可能不是你的答案。如果您尝试使用 Now() 函数添加时间戳,它将不断重新评估。有一些方法可以避免这种情况(howtoexcelatexcel.com/blog/…),但它涉及到我试图避免的循环引用。您可能需要一个 VBA 解决方案。
    • @TommyYip 我更新了我的答案,因为我知道你在找什么。
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多