2016-12-07 27 views
0

複数の条件付き書式を設定するにはどうすればよいですか?現在、私は単一の条件付き書式を作成することしかできません。VBAコーディングで複数の条件付き書式を追加する方法 - EXCEL

MY CODE:

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 

私はどこ、1つの条件付き書式を作成するために管理しているI2の値があれば - E2は、細胞の赤を記入し、20%以上です。

私はこのような2つの条件付き書式を作成したい場合

1)細胞は、0が黒セルを充填し、セルI2が< E2なく0である場合、白色フォント

2)に設定されている場合セルを黄色で塗りつぶす。

他の2つの条件付き書式を教えてもらえますか?どうもありがとう。

+2

条件を記録できませんか? – nightcrawler23

+0

私の "上司"は条件を記録する考え方を望まない。 – Joel

+0

さらに、条件付き書式をvbaにあまりにも多くのコードを記録し、どのコードが必要なのかわからない場合は、オーケー・ヴァバのプロ/グッドなこと。だから、最初からVBAコードを書く、私はちょっとコード – Joel

答えて

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 
+0

を理解する@ジョエル私は正しいものとして私の答えをマークするといいだろう。 :) –

+0

確かに:)助けてくれてありがとう。 – Joel

関連する問題