Excel VBA为过期日期添加条件格式

时间:2014-04-13 19:18:19

标签: excel vba excel-vba

我有2列,ColumnA包含日期(例如3/15/2014),而ColumnB的公式为ColumnA+30(例如=$A1+30)。

我需要做的是通过VBA添加条件格式,其中ColumnB个单元格变为红色,如果它的值(日期)小于今天的日期。

基本上ColumnA用于“制造日期”,ColumnB是“有效期”,应该是制造后30天。目标是在ColumnB中将红色单元格转换为已过期。必须通过VBA代码添加条件格式。

我尝试录制宏但效果不佳。

Sheet2.Range("K2:L" & Sheet2.UsedRange.Rows.Count).FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _
    Formula1:="=""Today()"""
Sheet2.Range("K2:L" & Sheet2.UsedRange.Rows.Count).FormatConditions(Sheet2.Range("K2:L" & Sheet2.UsedRange.Rows.Count).FormatConditions.Count).SetFirstPriority
With Sheet2.Range("K2:L" & Sheet2.UsedRange.Rows.Count).FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
End With
Sheet2.Range("K2:L" & Sheet2.UsedRange.Rows.Count).FormatConditions(1).StopIfTrue = False

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub test()
    'change Sheet2 to suit
    With ThisWorkbook.Worksheets("Sheet2").Range("B:B").FormatConditions
        .Add Type:=xlExpression, Formula1:="=AND(B1<>"""",B1<TODAY())"
        With .Item(.Count)
            .Interior.Color = 255
            .SetFirstPriority
        End With
    End With
End Sub