看板 Office 關於我們 聯絡資訊
軟體: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