首页 > 解决方案 > VBA代码将两列与颜色进行比较并将其与另一列进行比较

问题描述

我有三列 AA、AB 和 AF,我必须分别将所有行的 AA 和 AB 列与 AF 列进行比较。宏应首先检查 AA 和 AB 列,并找出哪一列具有琥珀色,并应将该列(仅当该琥珀列的值为“Critical”时)与相应的 AF 列进行比较以检查 AF 列的日期是否少于 335 天。

此查询首先比较 AA 和 AB 列,哪一个具有琥珀色,如果找到该值,它将检查值“Critical”,然后检查日期是否小于 335 天的相应 AF 列。不知何故,查询不起作用。请帮助我。

Sub EUDA_New()


Dim Critical As Range
Dim StartDate As Date
Dim amberColor As Boolean

StartDate = Date

With ThisWorkbook.Worksheets("TEMPLATE")

    LRow = .Cells(.Rows.Count, "AB").End(xlUp).Row
    For Each Critical In .Range("AB11:AB" & LRow)

        amberColor = False

        If .Range("AA" & Critical.Row).Interior.ColorIndex = RGB(255, 192, 0) Then

            Set Critical = .Range("AA" & Critical.Row)

            amberColor = True

        ElseIf .Range("AB" & Critical.Row).Interior.Color = RGB(255, 192, 0) Then

            amberColor = True
        End If


        If amberColor And Critical.Value = "Critical" Then

            If IsDate(.Range("AF" & Critical.Row)) Then

                If DateValue(.Range("AF" & Critical.Row)) < StartDate - 335 Then

                    .Range("AF" & Critical.Row).Interior.Color = vbRed
                End If
            Else

                .Range("AF" & Critical.Row).Interior.Color = vbRed
            End If
        End If
    Next Critical

End With
End Sub

标签: excelvba

解决方案


推荐阅读