根据列中的数据更改制表符的颜色

如何根据D列中的数据更改Excel 2010中的选项卡的颜色? 即…如果D列中的某个单元格包含“F”或“f”,则将选项卡更改为红色,如果D列中的单元格包含“PWE”或“pwe”,则将选项卡更改为黄色,然后如果“P”或“p”变为绿色,如果没有这些,则不要更改标签颜色。 帮助…谢谢!

Sub tabby() If Range("D:D").Text = "F" Or "f" Then ActiveWorkbook.Tab.Color = RGB(255, 0, 0) ElseIf Range("D:D").Text = "PWE" Or "pwe" Then ActiveWorkbook.Tab.Color = RGB(255, 255, 0) ElseIf Range("D:D").Text = "P" Or "p" Then ActiveWorkbook.Tab.Color = RGB(0, 255, 0) Else ActiveWorkbook.Tab.Color = RGB(0, 0, 0) End If End Sub 

我已经使用本地工作表COUNTIF函数来确定在D列中find的术语,并将If... ElseIf ... ElseIf ...转换为Select Case 。 search项是在一个数组中循环。

 Sub tabby() Dim w As Long, v As Long, vTERMs As Variant vTERMs = Array("f", "pwe", "p") For w = 1 To Sheets.Count With Sheets(w) For v = LBound(vTERMs) To UBound(vTERMs) If CBool(Application.CountIf(.Columns(4), vTERMs(v))) Then Select Case v Case 0 .Tab.Color = RGB(255, 0, 0) Case 1 .Tab.Color = RGB(255, 255, 0) Case 2 .Tab.Color = RGB(0, 255, 0) End Select Exit For Else .Tab.Color = RGB(0, 0, 0) End If Next v End With Next w End Sub 

请注意,这些条款的顺序很重要。 如果find一个术语,那么退出循环,因此应优先search优先条件。 我已经使用了你在上面示例代码中的顺序。