2016-07-28 6 views
1

特定の列内に「C」を含むセルの行全体を色付けしようとしています。私は色をつけたくない "P"も存在します。ここに私のコードです。セルに値が含まれている場合、列全体の色

Sub color() 
Dim lastRow As Long 

With Sheets("MP Parameters") 
    lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row 
    With .Range("K5:K" & lastRow) 
     .Value = IIf(Interior.ColorIndex = 15, "C", "P") 
    End With 
End With 
End Sub 

私は、セルが「C」が含まれており、「P」が含まれていない場合、それを色付けすることを想定しています.Value = IIf(Interior.ColorIndex = 15, "C", "P")

+2

あなたはDピリオド '.Value = IIf(.Interior.ColorIndex = 15、" C "、" P ")を囲んだので、InteriorはRangeを参照していませんでした。 – Mikegrann

+2

条件付き書式を使用するだけではどうですか? – tigeravatar

+1

これはあなたのエラーを説明していますが、あなたが記述したものの近くで何もしないあなたのコードを修正するものではありません。実際には条件付き書式設定が最適です。何らかの理由でそれを使用したくない場合は、記述した内容を行うためにコードを書き直すことになります。 – Mikegrann

答えて

2

上のオブジェクトのエラーを取得します。

  • "ABCDEF":色です
  • "ABCP":カラーはそれ
  • "DEFGH":それ
  • を着色しないでください
  • "ABC" がそれを着色しないでください。

Sub color() 
    Dim lastRow As Long 
    Dim x As Long 

    With Sheets("MP Parameters") 
     lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row 

     For x = 5 To lastRow 

      If .Cells(x, "K") Like "*C*" And Not .Cells(x, "K") Like "*P*" Then 

       .Rows(x).Interior.ColorIndex = 15 

      End If 

     Next 

    End With 
End Sub 
+0

これははるかに優れています。ありがとうございました。私はしばしばVBAの機能を混乱させます。私は一般的にもっと経験が必要だと思う。それは有り難いです! –

+0

Youtubeで[VBA WiseOwlTutorials](https://www.youtube.com/watch?v=KHO5NIcZAc4&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5)をすべて視聴することをおすすめします。 –

関連する問題