如何检查单元格值是错误还是< 0?

时间:2014-01-10 15:38:29

标签: excel-vba if-statement vba excel

我试过在if语句中使用or语句但是我遇到了“类型不匹配”错误。 Cell.value < 0WorksheetFunction.IsError(Cell.Value)都返回true或false,对吗?那么,类型不匹配是什么?

谢谢!

For Each Cell In RatioThU
     If Cell.Value < 0 Or WorksheetFunction.IsError(Cell.Value) Then '<--TYPE MISMATCH!
        Cell.EntireRow.Select
           Selection.Font.StrikeThrough = True
     End If
Next

2 个答案:

答案 0 :(得分:3)

所选范围内单元格中的错误值导致Cell.Value = 0检查中的类型不匹配。

首先检查错误情况,然后检查单元格值,如此...

If WorksheetFunction.IsError(Cell.Value) = "True" Then
     Cell.EntireRow.Select
         Selection.Font.Strikethrough = True
ElseIf Cell.Value = 0 Then   
    Cell.EntireRow.Select
       Selection.Font.Strikethrough = True
End If

您知道如何单步执行代码并添加手表吗?它对于调试这样的错误非常有用,值得研究。

答案 1 :(得分:2)

您必须分开测试:

For Each cell In RatioThU
     If WorksheetFunction.IsError(cell) Then
        cell.EntireRow.Font.Strikethrough = True
    Else
        If cell.Value < 0 Then
            cell.EntireRow.Font.Strikethrough = True
        End If
     End If
Next

注意选择不是必需的。