[算表] VBA比较运算子问题

楼主: foolkids (翼をください)   2014-09-03 10:10:56
软件:Office Excel
版本:2010
我想要用时间来进行条件判断,因为时间资料来源是Timer(自午夜迄今的秒数)
我想设定中午12点开始 于是写了─
If 12 * 60 * 60 < Timer then
.
..
...
(以下省略)
End If
但是执行的时候会产生错误讯息"溢位"
于是我进一步测试下列运算─
MsgBox 12 * 60 * 60 = 43200
结果还是显示"溢位",但是改成─
MsgBox 43200 = 43200 '(把12*60*60的运算直接算出来=43200)
结果是正确的,这是怎么回事呢?
进一步试验,如果是 11.999999 * 60 * 60 就不会产生溢位错误
难道比较运算子有内定的资料格式,导致我的乘法运算产生错误?
因为上面提到的需求,我需要一个 小时 * 60 * 60 的写法来快速变更设定时间
所以才会想要从这边了解,如果可以得到答案就能够更准确的对应,
不然最后可能也就是多设定个变量先算出秒数再来比较了吧...
希望有前辈不吝指点,谢谢!!
楼主: foolkids (翼をください)   2014-09-03 10:14:00
结果刚刚设定变量 A = 12 * 60 * 60 也是溢位... Why?补充:有先 Dim A as Long
作者: soyoso (我是耀宗)   2014-09-03 10:16:00
改12# * 60 * 60试试
楼主: foolkids (翼をください)   2014-09-03 10:17:00
谢谢苏大! 方便告诉我问题所在吗? 这问题好诡异呀~~~
作者: soyoso (我是耀宗)   2014-09-03 10:40:00
http://goo.gl/VJqIsh 请看网页下方网友回复原因因就是提供算式它判断为integer,因此超过32767时就溢位
楼主: foolkids (翼をください)   2014-09-03 10:57:00
谢谢苏大~~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com