即使VBA中的先前条件为假,也会评估'和'条件

时间:2015-09-26 10:57:37

标签: vba excel-vba excel

例如:

Dim name As String: name = "NaN"

' Doesn't generate an error:
If IsNumeric(name) Then
    Dim iv As Integer: iv = CInt(name)
    If iv > 0 Then
        ' Do something
    End If
End If

' Does generate error 13 on 'CInt(name)': Types don't match
If IsNumeric(name) And CInt(name) > 0 Then
    ' Do something
End If

为什么第二个条件CInt(name) > 0甚至用单个if语句进行评估?或者这正是VBA的作用?我习惯于编写没有这种行为的C#代码。

1 个答案:

答案 0 :(得分:2)

  

或者这正是VBA的作用?

是。

请改用:

If IsNumeric(name) Then 
    If CInt(name) > 0 Then
        ' Do something
    End If
End If

或由amdixon链接的post中的任何其他方法。