VBA 特定边框的条件格式

VBA Conditional Formatting of specific Borders

嘿, 因此,我正在尝试使用 VBA 添加条件格式来补偿一些其他编码,这些编码会不时更改范围。我的问题是,我只将条件格式应用于 xlEdgeRightxlEdgeLeft。但是,VBA总是告诉我不能设置边框样式。有什么想法吗?

Dim rngMark As Range
Dim DateCond As FormatCondition
Dim BordNum As Long

Call wsDef
Set rngMark = wksS.Range("E11:CPB25")

rngMark.FormatConditions.Delete
Set DateCond = rngMark.FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(TODAY()>=E,TODAY()<F)")
DateCond.SetFirstPriority
With DateCond
    .StopIfTrue = False
    .Font.ThemeColor = xlThemeColorAccent2
    .Font.Bold = True
    .Borders.LineStyle = xlNone
    .Borders.LineStyle = xlNone
End With
For BordNum = 7 To 8
    With DateCond.Borders(BordNum)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Color = -16776961
        .Weight = xlThin
    End With
Next BordNum

编程格式条件 - 特别是边框 - 有点特殊。

在这种情况下,您必须使用 xlLeft = -4131 和 xlRight = -4152:

Dim BordNum As Long
Dim arrBordNum(1) As Long
arrBordNum(0) = -4131   'xlleft
arrBordNum(1) = -4152   'xlright
For BordNum = 0 To UBound(arrBordNum)
    With DateCond.Borders(arrBordNum(BordNum))
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Color = -16776961
        .Weight = xlThin
    End With
Next BordNum