如何在VBA编码中添加多个条件格式 - EXCEL

时间:2016-12-07 07:19:54

标签: excel vba excel-vba

如何编码多个条件格式?目前,我只能编码单个条件格式。

我的代码:

Sub Button5_Click()
Dim ws As Worksheet
Dim i As Integer
Set ws = Sheets("COMPARISON")
i = 1

With Range("I2:I146").FormatConditions.Add( _
    Type:=xlExpression, _
    Formula1:="=((($I2-$E2)/$E2)*100) > 20")
    .Interior.Color = RGB(255, 0, 0)

End With

Do Until i = 300
   If ws.Range("I" & i).DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
       msg = "I" & i & " -" & " Data has changed"
       MsgBox msg
   End If
i = i + 1
Loop

End Sub

我已设法创建一个条件格式,如果I2 - E2的值大于20%,则将单元格填充为红色。

我希望再创建两个条件格式,例如

1)如果单元格为0,则将单元格填充为黑色并将字体设置为白色

2)如果细胞I2 <1。 E2但不是0填充细胞黄色。

有人可以帮我处理其他2个条件格式吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

我刚刚复制了With块并应用了您拥有的条件。你可以试试这个:

Sub Button5_Click()
Dim ws As Worksheet
Dim i As Integer
Set ws = Sheets("COMPARISON")
i = 1

With Range("I2:I146").FormatConditions.Add( _
    Type:=xlExpression, _
    Formula1:="=((($I2-$E2)/$E2)*100) > 20")
    .Interior.Color = RGB(255, 0, 0)

End With

With Range("I2:I146").FormatConditions.Add( _
    Type:=xlCellValue, _
    Operator:=xlEqual, _
    Formula1:="0")
    .Interior.Color = RGB(0, 0, 0)
    .Font.Color = RGB(255, 255, 255)
End With

With Range("I2:I146").FormatConditions.Add( _
    Type:=xlExpression, _
    Formula1:="=AND($I2<$E2, $I2<>0)")
    .Interior.Color = RGB(255, 255, 0)
End With

Do Until i = 300
   If ws.Range("I" & i).DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
       msg = "I" & i & " -" & " Data has changed"
       MsgBox msg
   End If
i = i + 1
Loop

End Sub