使用 VBA FormatCondition 突出显示上周的日期

问题描述 投票:0回答:1

我使用 FormatConditions 突出显示上周的日期,即给定一列日期

Range("A2:A100").Select
With Selection
.FormatConditions.Add Type:=xlTimePeriod, DateOperator:=xlLastWeek
.FormatConditions(1).Interior.Color=RGB(0,255,0)
End With

据我了解,DateOperator 不包含前一周日期的选项,例如没有 xlLastLastWeek,所以我的问题是:如何添加条件来突出显示前一周的日期?

不知道从这里去哪里。

excel vba
1个回答
0
投票
  • 使用VBA代码添加
    between
    FC(格式条件)
  • 当OS系统日期发生变化时,它不会像上周和本周FC那样自动更新。
  • 在示例片段中,星期日被视为一周的第一天;根据需要修改。
Option Explicit
Sub demo()
    Dim iWk As Long, sDay As Long, eDay As Long
    Dim oFC As FormatCondition
    iWk = VBA.Weekday(Date, firstdayofweek:=vbSunday)
    sDay = CLng(Date - iWk - 13)
    eDay = CLng(Date - iWk - 7)
    Set oFC = Range("A1:A200").FormatConditions.Add(Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=" & sDay, Formula2:="=" & eDay)
    oFC.Interior.Color = vbYellow
End Sub

© www.soinside.com 2019 - 2024. All rights reserved.