根据列值testing着色Excel选项卡

我有一个工作表,有多个列和数据行。 特别是一列,​​让我们称之为'L'列将主要有这2个值:

  • #N / A
  • 0

但是,它可以有其他的价值。 我想要的是我想VBA代码,检查这个列中的值,如果它不等于上述两个项目之一,改变选项卡的颜色为红色。

我有的代码如下:

Sub CheckColumn() Dim i For i = 3 to 4001 If Cells(i, 12).Value <> xlErrNA And Cells(i, 12).Value <> "0" Then GoTo NoColor Next i With Activeworkbook.Activesheet.Tab .Color = 255 .TintAndShade = 0 End With Exit Sub NoColor: End Sub 

但我有什么似乎没有工作。 任何想法/build议/援助将不胜感激。

谢谢!

因为xlErrNA不是正确的xlErrNA / A值检查(相当于使用NA()

尝试一个单一的公式,例如这个(参见Countif with Multiple OR Criteria )

 Sub CheckColumn() If Evaluate("Sum(COUNTIF(K3:K4001,{""=0"",""#N/A""}))") <> 3998 Then With ActiveWorkbook.ActiveSheet.Tab .Color = 255 .TintAndShade = 0 End With End Sub 

感谢您的回答。 只是fyi,在你的答案上,你错过了一个'如果'

但是通过你提供的链接,我能够弄明白:

 For I = 1 to ActiveWorkbook.Worksheets.Count Activeworkbook.Worksheets(I).Select iVal = Application.WorksheetFunction.CountIf(Range("K2:K4000"), "0") + Application.WorksheetFunction.CountIf(Range("K2:K4000"), "#N/A") If iVal = 3999 Then With ActiveWorkbook.ActiveSheet.Tab .Color = 255 .TintAndShade = 0 End With End If Next I 

再次,感谢您的信息 – 这是不胜感激。

谢谢!