作者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://www.ptt.cc/bbs/Office/M.1526018853.A.DCA.html
→ soyoso: 問題是true運算後是-1而非工作表內的1 05/11 14:11
→ soyoso: vba的true為-1,工作表內為1,false的話二者相同 05/11 14:13
→ soyoso: 如果a1填上6,則會是-1+0>0為假,回傳"上班" 05/11 14:15
→ soyoso: 下方的判斷會是1-(0+0+0+0+0)>0為真 05/11 14:16
→ newacc: 不要判斷是否>0 05/11 14:22
→ newacc: If (([A1] = 6) + ([A1] = 7)) Then MsgBox "週休" 05/11 14:22
→ newacc: 只要有值,不管是-1、1、2還是多少,就會是TRUE 05/11 14:23
→ newacc: 只要是0就會是FALSE 05/11 14:23
→ home0303: 懂了 感謝 原來True是-1(筆記) 05/11 15:02