对于下面的输入框,为什么“case”语句没有评估,但“If”呢?我已经将strInputVal声明为字符串。
strInputVal = InputBox("How many payments?")
这有效:
If strInputVal = ""
Then GoTo Exit_sub
End If
以下不起作用:
Select Case IsNumeric(strInputVal)
Case strInputVal = vbNullString
GoTo Exit_sub
End select
答案 0 :(得分:0)
案例陈述应该是
Select Case strInputVal
case vbnullString
GoTo Exit_sub
end select
答案 1 :(得分:0)
您偶然发现了Select Case
我认为它是Select Case True。它是If..else if
结构的替代。
使用此语法,每个案例都会计算为一个布尔值,并与您提供的布尔值进行比较。
所以做一些评估,你的代码等同于:
Select Case False
Case "" = vbNullString ' skipped because not False
GoTo Exit_Sub
End Select
我认为你打算做的是更标准的案例语法:
Select case strInputVal
case vbEmptyString
GoTo Exit_Sub
End Select
但你可以这样写:
Select Case True
Case "" = vbNullString ' not skipped, because true
GoTo Exit_Sub
End Select