You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA Select Case语句执行顺序及代码结构选择咨询

关于VBA Select Case确保执行顺序的解决方案
  • 第一种结构(单Select Case):
    这是标准的Select Case用法,VBA实际会按代码中Case的书写顺序从上到下匹配条件。一旦找到第一个匹配的Case,执行对应的代码块后就会直接退出整个Select Case结构,后续的Case不会再被检查。
    对应代码:

    Select Case My.Property
        Case "Foo"
            Apples
        Case "Bar"
            Oranges
    End Select
    

    这种结构下,Oranges永远不会在Apples之后执行——因为My.Property要么是"Foo"(只执行Apples),要么是"Bar"(只执行Oranges),不可能同时触发两个Case。

  • 第二种结构(两个独立Select Case):
    这是两个完全独立的判断逻辑,第一个Select Case检查"Foo"并执行Apples,第二个独立的Select Case检查"Bar"并执行Oranges。
    对应代码:

    Select Case My.Property
        Case "Foo"
            Apples
    End Select
    
    Select Case My.Property
        Case "Bar"
            Oranges
    End Select
    

    这种结构下,只要My.Property满足对应条件,两个代码块都会被执行(如果存在重叠匹配条件的场景),且严格按照代码顺序先执行Apples再执行Oranges。即使官方文档未明确Select Case内部的Case匹配顺序,这种独立结构也能保证执行顺序不受内部逻辑影响。

结论

如果你的需求是只要符合条件,Oranges必须在Apples之后执行(比如存在My.Property同时满足两个Case条件的场景),第二种结构是唯一能确保顺序的选择。如果My.Property的取值是互斥的(比如只能是"Foo"或"Bar"),两种结构在执行结果上没有区别,但第二种结构的逻辑更清晰,完全不受Select Case内部匹配顺序的潜在影响。

内容的提问来源于stack exchange,提问作者ebsf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:35:21