[算表]VBA中If语句用0与1表示True/False

楼主: home0303 (Blue night)   2018-05-11 14:07:31
软件:EXCEL
版本:2010
If (([A1] = 6) + ([A1] = 7)) > 0 Then MsgBox "周休" Else MsgBox "上班"
If 1 - (([A1] = 1) + ([A1] = 2) + ([A1] = 3) + ([A1] = 4) + ([A1] = 5)) > 0
Then MsgBox "周休" Else MsgBox "上班"
上面两句VBA 不论A1储存格为何
第一句都是 上班
第二句都是 周休
这表示一定写错了
请教问题所在??
谢谢
作者: soyoso (我是耀宗)   2018-05-11 14:11:00
问题是true运算后是-1而非工作表内的1vba的true为-1,工作表内为1,false的话二者相同如果a1填上6,则会是-1+0>0为假,回传"上班"下方的判断会是1-(0+0+0+0+0)>0为真
作者: newacc (XD)   2018-05-11 14:22:00
不要判断是否>0If (([A1] = 6) + ([A1] = 7)) Then MsgBox "周休"只要有值,不管是-1、1、2还是多少,就会是TRUE只要是0就会是FALSE
楼主: home0303 (Blue night)   2018-05-11 15:02:00
懂了 感谢 原来True是-1(笔记)

Links booklink

Contact Us: admin [ a t ] ucptt.com