VBA - IF评估

时间:2017-07-27 08:41:25

标签: vba excel-vba if-statement evaluation excel

我很确定在大多数语言中,您可以通过执行以下操作之一来确保对条件的评估:

if FALSE and (1/0 = 0) {...}

if TRUE or (1/0 = 0) {...}

这些示例不应该抛出exeptions(可能是第二个取决于评估的内部实现),因为即使不检查第二个条件,也可以满足整个if条件。

在VBA中,这两种保护都不起作用:

If False and t() Then ...
If True or t() Then ...

Function t() As Boolean
MsgBox "This is displayed both times"
End Function

为什么VBA会采用这种方式行事,而采用这种保护的最佳(最短)方式是什么?

示例:If s = "" or thisFunctionCantTakeEmptyStrings(s) Then ...

0 个答案:

没有答案