iif 和 if then 语句的差别
看下代码,IIF语句会将 True 和 False 都计算一遍,其中一个不正确就会出错,但if then 语句就不会
比如情况1时,当strcp ="a|b"时正常,但没有了"|"就报错了
情况2,无论strcp中有没有"|"都执行正常。
如果要测试的话,只选其中一种情况,将另一种情况注释掉
这个确实是这样子的吗?如果iif会将True和False情况都计算一次,那从效率上讲会不会比IF THEN 慢一些,这样的话,我以后就不再用IIF了!
Dim iTemp As Long
Dim strCp As String
strCp = "MyTestStr"
iTemp = InStr(strCp, "|")
'情况1
'' SelComputer = IIf(iTemp > 1, Left(strCp, iTemp - 1), strCp) 'IIf 语句会先将 True 和 False 都计算一遍,会出错
’情况2
If iTemp > 1 Then
SelComputer = Left(strCp, iTemp - 1)
Else
SelComputer = strCp
End If