在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


发表评论