Excel WorksheetFunction.Or
Excel WorksheetFunction.Or
是 WorksheetFunction.Or
评估所有参数,还是立即 return True
一旦参数评估为 True
?
问题是,我正在尝试检查一个变量是否为数字,如果是,我想检查它是否小于 1。您可以在下面看到它:
If IsNumeric(lvl) Or lvl < 1 Then
Do sth...
End If
描述 here,VBA 中的 Or
运算符计算所有参数,当 _lvl_
不是数字时我得到类型不匹配错误。 WorksheetFunction.Or
的行为是否相同?
是的,WorksheetFunction.Or
行为相同。
原因是,就 VBA 而言,它是一个常规函数,因此 VBA 将在将所有参数传递给函数之前对其进行评估。该函数将没有机会执行惰性求值。
为了启动惰性求值,求值结构必须是语言语法的一部分。 VBA 在它的语法中没有它,所以它在以任何方式调用任何函数时都不会起作用。
是 WorksheetFunction.Or
评估所有参数,还是立即 return True
一旦参数评估为 True
?
问题是,我正在尝试检查一个变量是否为数字,如果是,我想检查它是否小于 1。您可以在下面看到它:
If IsNumeric(lvl) Or lvl < 1 Then
Do sth...
End If
描述 here,VBA 中的 Or
运算符计算所有参数,当 _lvl_
不是数字时我得到类型不匹配错误。 WorksheetFunction.Or
的行为是否相同?
是的,WorksheetFunction.Or
行为相同。
原因是,就 VBA 而言,它是一个常规函数,因此 VBA 将在将所有参数传递给函数之前对其进行评估。该函数将没有机会执行惰性求值。
为了启动惰性求值,求值结构必须是语言语法的一部分。 VBA 在它的语法中没有它,所以它在以任何方式调用任何函数时都不会起作用。