作者home0303 (Blue night)
看板Office
標題[算表]VBA中If語句用0與1表示True/False
時間Fri May 11 14:07:31 2018
軟體: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儲存格為何
第一句都是 上班
第二句都是 周休
這表示一定寫錯了
請教問題所在??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.98.114.28
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1526018853.A.DCA.html
1F:→ soyoso: 問題是true運算後是-1而非工作表內的1 05/11 14:11
2F:→ soyoso: vba的true為-1,工作表內為1,false的話二者相同 05/11 14:13
3F:→ soyoso: 如果a1填上6,則會是-1+0>0為假,回傳"上班" 05/11 14:15
4F:→ soyoso: 下方的判斷會是1-(0+0+0+0+0)>0為真 05/11 14:16
5F:→ newacc: 不要判斷是否>0 05/11 14:22
6F:→ newacc: If (([A1] = 6) + ([A1] = 7)) Then MsgBox "週休" 05/11 14:22
7F:→ newacc: 只要有值,不管是-1、1、2還是多少,就會是TRUE 05/11 14:23
8F:→ newacc: 只要是0就會是FALSE 05/11 14:23
9F:→ home0303: 懂了 感謝 原來True是-1(筆記) 05/11 15:02