如何用vba给单元格区域添加、修改、删除条件格式?

在vba中FormatCondition对象代表条件格式。

如果要给Range对象添加条件格式,可以用FormatConditions.Add方法,它的语法如下:

expression . Add( Type , Operator , Formula1 , Formula2 )

其中Type参数是要添加的条件格式的类型,可以是基于值添加的条件格式,也可以是用公式判断的条件格式。

Type参数将影响后面Operator , Formula1 , Formula2 三个参数的选择和使用。

如果Type参数是xlExpression,则Operator,Formula2参数都可以省略,只用Formula1参数即可。

当Type参数是xlExpression,表示用公式来添加条件格式。

以下的代码演示了如何先删除单元格区域中存在的条件格式,然后再添加条件格式的过程:

Sub QQ1722187970()
    Dim oWK As Worksheet
    Dim oRng As Range
    Set oWK = Excel.ActiveSheet
    Set oRng = Excel.ActiveCell.CurrentRegion
    Dim oFC As FormatCondition
    iRow = Excel.ActiveCell.Row
    iCol = Excel.ActiveCell.Column
    sF = "=OR(ROW()=" & iRow & ",COLUMN()=" & iCol & ")"
    iCol = oRng.FormatConditions.Count
    '先删除原来的条件格式
    For Each oFC In oRng.FormatConditions
        oFC.Delete
    Next
    '添加以公式为判断依据的条件格式
    Set oFC = oRng.FormatConditions.Add(xlExpression, , sF)
    With oFC
        '设置条件格式的填充色
        .Interior.Color = vbYellow
    End With
End Sub

 

       

发表评论