输入框和空字符串值

时间:2015-08-27 20:29:46

标签: vba excel-vba excel

对于下面的输入框,为什么“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

2 个答案:

答案 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