2016-07-28 63 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 

我上.Value = IIf(Interior.ColorIndex = 15, "C", "P")

+2

你d (内部。色彩索引= 15,“C”,“P”)'所以内部不是指范围。内部 – Mikegrann

+2

为什么不只是使用条件格式? – tigeravatar

+1

虽然这解释了你的错误,但它并没有修复你的代码,它不会在你描述的附近做任何事情。条件格式确实是最好的。如果出于某种原因不想使用它,则需要重写代码才能执行所描述的操作。 – Mikegrann

回答

2

我假设,如果单元格中包含一个“C”和不包含“P”,那么它上色的对象错误。

例子

  • “ABCDEF”:颜色是
  • “ABCP”:不要颜色故
  • “ABC”:颜色是
  • “DEFGH”:不要颜色故

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)。 – 2016-07-28 20:27:58

相关问题