[算表]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