首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select Case语句中的多个真实案例

Select Case语句中的多个真实案例
EN

Stack Overflow用户
提问于 2019-03-29 15:46:54
回答 1查看 1.5K关注 0票数 2

我想知道如何让Select在遇到第一个计算为true的表达式后继续运行。在下面的示例中,只有消息框"Z小于9“将被触发。我想知道如何继续代码,以便在"Z小于9“之后显示消息框"Z小于10”。

代码语言:javascript
复制
Sub SelectCaseTrying()
    Dim Z As Integer
    Z = 8
Select Case Z
    Case 5 To 9
        MsgBox "Z is less than 9"
    Case Is < 10
        MsgBox "Z is less than 10"
    Case Is > 15
        MsgBox "Z is greater than 15"
    Case Else
        MsgBox "Z is "
    End Select
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 16:28:38

我想知道如何让Select在遇到第一个计算为true的表达式后继续运行。

您不能这样做,因为根据语言规范,Case块在VBA中不会“失败”,所以如果您有以下内容:

代码语言:javascript
复制
Select Case Z
    Case Is < 15
        MsgBox "less than 15"
    Case Is < 10
        MsgBox "less than 10"
    Case Else
        MsgBox "greater than or equal to 10"
End Select

然后,第二个Case是不可触及的,而像橡胶鸭这样的静态代码分析工具(免责声明:我是这个开源项目的贡献者)可以对此提出警告:

Select...Case看作是编写If...ElseIf...ElseIf...ElseIf...ElseIf...块的一种更简洁的方法:所有条件都应该是互斥的,并且只有一个分支可以执行。

如果需要运行两个或多个条件块,则不能使用Select...Case,因为这不是If...ElseIf...ElseIf...所做的:如果需要两个或多个条件块来运行,则需要两个或多个单独的条件块(If...End If)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55421019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档