Does VBA Have a Ternary Operator?

前端 未结 3 796
感动是毒
感动是毒 2020-12-16 10:13

I come from the beautiful world of Obj C, which is based on the C programming language, and I\'ve fallen in love with finding quirky ways to save space. However, I\'ve looke

3条回答
  •  旧巷少年郎
    2020-12-16 11:01

    the closest function is IIf()

    IIf(expr, truepart, falsepart)
    

    but:

    • you can't have its branches simply running code, while you have to assign its return value to some variable,

    • it doesn't short-circuit,

      it always evaluates both branches so that should one of them fail, even if not the "real" one, the statement would throw an error anyway.

    So the most resembling statement is:

    If boolVar Then sub1 Else sub2 
    

    where:

    • boolVar is a boolean type variable,

    • sub1 and sub2 are two different subs/functions to be called.

提交回复
热议问题