我正在“报告”构建器中构建报告并创建计算字段。
当我尝试输入表达式
时=iif(IsNothing(Fields!DDICU.Value),"",iif(fields!DDICU.value > Parameters!end.value,"00:00",fields!TDICU.value.tostring))
DDICU.value
为空时出错,但iif
DDICU
语句正常工作
有人有任何想法吗?
答案 0 :(得分:3)
IIF()
运算符在给出结果之前计算 TRUE 和 FALSE 子句。因此,如果 FALSE 子句发出错误,它仍会抛出错误。
请参阅以下示例:
Option Explicit
Public Sub TestMe()
If True Then
Debug.Print 2
Else
Debug.Print 0 / 0
End If
Debug.Print IIf(True, 1, 0 / 0)
End Sub
IF
和IIF
看起来几乎相同,但VBA会在IIF()
处抛出错误,因为它会尝试计算0/0
。在If
条件下,它不会引发错误,因为它不会尝试计算0/0
。