|
楼主 |
发表于 2014-7-9 16:17
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
sz_wap 发表于 2014-7-9 15:20
12楼的普及比较有意义
补充,
在Access数据库操作中更为常见的 [变量结果]=IIf([条件],[真],[伪])
这里面很多人也存在误区。
比如,
t = IIf(a,b,c)
理论上,这个和:
If a Then
t=b
Else
t=c
End If
或 If a Then t=b Else t=c
是等效的,但实际并不相同。
因为=IIf(a,b,c)条件判断函数有一个重要特征:
每一次都会不管三七二十一同时计算表达式b和表达式c的结果,
最后才根据a条件的真、伪结果来选择返回表达式b(真时)或表达式c(伪时)的结果。
但是这样一来,计算效率略低还不算太大的问题,
问题在于,如果某个计算表达式可能产生错误,则整个语句就出错而导致代码运行被迫停止了。
着呢曾经有真实例子,某人发帖说代码出错无法运行,最后检查发现是因为使用了IIf(a,b,c)条件判断函数时,第二选项会产生除以零的算法错误,导致代码终止运行。
这个要请大家注意。
例如:
t=IIf(a<>0,b/a,c)
当a=0时,理论上应该选择t=c以避免除零运算,但实际仍会出错,因为IIf函数会先计算b/a导致出错。
而下面方法则可以避开错误:
If a Then t = b / a Else t = c
当a=0时,直接给变量t赋值为=c,而不会去计算t=b/a这个错误的计算式。
呵呵。
|
评分
-
3
查看全部评分
-
|