2017-01-30 23 views
0

Excel 2013のVBAで条件付き書式設定を実行しようとしています。リストの検証が "無効"の場合、コードNのセル(内装色)他の時間には "Complete"と白を表示します。 Col Nのリストの検証が「保留」で、他の時間が白の場合は、Col Oのセル(内部色)が赤に変わります。Excel VBA:条件付きの書式設定 - 内部の色

現在、表示される結果は です。1.リストの検証から何も選択されていない場合、Col NとCol Oは白です。 2.リストの検証から何かが選択されると、Col Nが緑色に変わります。 3. Col Oで「保留」を選択すると、Col Oが赤に変わり、Col Nで他の項目が選択されている場合は白に戻ります。
4. Col Oで何かが選択されている場合、セルは赤色に変わります。オペレータVS = xlNotEqual::= xlEqual

私の現在のコードは、(私がコメントアウトしましセクションと一緒に)です:演算子を使用する際

'Add conditional format for column N. If Status is "Complete", color Status cell (col N) green (43). 

With Worksheets(SheetNum & " - Work").Range("N2:N2000").Select 
    'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ 
     Formula1:="=OR(($N2=""Not Started""),($N2=""In Queue""), ($N2=""In Work""), ($N2=""Held""), ($N2="" "")" 
    'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
     Formula1:="=($N2=""Complete"")" 
    'With Selection.FormatConditions(1) 
     '.Interior.ColorIndex = 2 
     '.StopIfTrue = True 
    'End With 
'End With 

    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
     Formula1:="=($N2=""Complete"")" 
    With Selection.FormatConditions(1) 
     .Interior.ColorIndex = 43 
     '.StopIfTrue = True 
    End With 
End With 

'Add conditional format for column O. If Status is "Held", color Held For cell (col O) 
'red (3). 
'With Worksheets(SheetNum & " - Work").Range("O2:O2000").Select 
    'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
     Formula1:="=OR(($N2=""Not Started""),($N2=""In Queue""), ($N2=""In Work""), ($N2=""Complete""))" 
    'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ 
     Formula1:="=($N2=""Held"")" 
    'With Selection.FormatConditions(1) 
     '.Interior.ColorIndex = 2 
     '.StopIfTrue = True 
    'End With 

    With Worksheets(SheetNum & " - Work").Range("O2:O2000").Select 
     Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
      Formula1:="=($N2=""Held"")" 
     With Selection.FormatConditions(1) 
      .Interior.ColorIndex = 3 
      '.StopIfTrue = True 
     End With 
    End With 

また、誰かが説明できますか?これらは、私が期待していたものとは逆の働きをしているようです。

ありがとうございました。

答えて

0

セル$ N2に実際の単語 "Complete"と "Held"が含まれていますか?

ので、多分、これは残念ながら

Sub tester() 
    For I = 1 To 100 ' or lastused row 
     If InStr(1, UCase(Sheet6.Range("N" & I).Value), "COMPLETE") > 0 Then 
      Sheet6.Range("N" & I).Interior.ColorIndex = 43 
     Else 
      If InStr(1, UCase(Sheet6.Range("N" & I).Value), "HELD") > 0 Then 
       Sheet6.Range("N" & I).Interior.ColorIndex = 3 
      Else 

       Sheet6.Range("N" & I).Interior.ColorIndex = 2 
      End If 
     End If 

    Next I 
End Sub 
1

を動作する場合は、これらの列は、私は条件付き書式を使用しようとしている理由であるオンザフライで色付けする必要があります。私がこれらのシートに適用しようとしている約10の条件付きフォーマットが、プログラムの全期間を通して作成されます。

プラス側では、一日中試した後、私は ")"( ""保留 "")を欠いていたことに気付きました。しかし、ファイルが正しく動作するようには見えません。

0

私は最終的に私がしたいものを得るための正しいコードを見つけました。

'Add conditional format for column N. If Status is "Complete", color Status cell (col N) green (43). 
With Worksheets(SheetNum & " - Work").Range("N2:N2000").Select 
     Selection.FormatConditions.Add Type:=xlExpression, _ 
      Formula1:="=($N2=""Complete"")" 
     With Selection.FormatConditions(1) 
      .Interior.ColorIndex = 43 
      .StopIfTrue = True 
     End With 
    End With 
関連する問題