我试过在if语句中使用or语句但是我遇到了“类型不匹配”错误。 Cell.value < 0
和WorksheetFunction.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
答案 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
注意选择不是必需的。