我想知道为什么以下这些代码不相等:
test = IIf(CURRENCY_ Is Nothing, " ", IIf(IsEmpty(CURRENCY_.Value), " ", CStr(CURRENCY_.Value)))
Run Code Online (Sandbox Code Playgroud)
和
If CURRENCY_ Is Nothing Then
test = " "
Else: IsEmpty (CURRENCY_.Value)
test = CStr(CURRENCY_.Value)
End If
Run Code Online (Sandbox Code Playgroud)
对于第一个代码,我得到以下错误:
未设置对象变量或带块变量
有人可以帮我吗?
IIF()
在给出结果之前,评估者会评估真假部分。因此,如果False
零件给出某种错误,则会抛出该错误:
Sub TestMeIIf()
Debug.Print IIf(True, "It is true", 0 / 0)
End Sub
Run Code Online (Sandbox Code Playgroud)
在If()-Else-End If
仅评估的True
一部分。如果False
零件抛出错误,它将被忽略:
Sub TestMeIf()
If True Then
Debug.Print "It is true!"
Else
Debug.Print 0 / 0
End If
End Sub
Run Code Online (Sandbox Code Playgroud)