[算表]VBA中If語句用0與1表示True/False

看板Office作者 (Blue night)時間6年前 (2018/05/11 14:07), 編輯推噓0(009)
留言9則, 3人參與, 6年前最新討論串1/1
軟體: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

05/11 14:11, 6年前 , 1F
問題是true運算後是-1而非工作表內的1
05/11 14:11, 1F

05/11 14:13, 6年前 , 2F
vba的true為-1,工作表內為1,false的話二者相同
05/11 14:13, 2F

05/11 14:15, 6年前 , 3F
如果a1填上6,則會是-1+0>0為假,回傳"上班"
05/11 14:15, 3F

05/11 14:16, 6年前 , 4F
下方的判斷會是1-(0+0+0+0+0)>0為真
05/11 14:16, 4F

05/11 14:22, 6年前 , 5F
不要判斷是否>0
05/11 14:22, 5F

05/11 14:22, 6年前 , 6F
If (([A1] = 6) + ([A1] = 7)) Then MsgBox "週休"
05/11 14:22, 6F

05/11 14:23, 6年前 , 7F
只要有值,不管是-1、1、2還是多少,就會是TRUE
05/11 14:23, 7F

05/11 14:23, 6年前 , 8F
只要是0就會是FALSE
05/11 14:23, 8F

05/11 15:02, 6年前 , 9F
懂了 感謝 原來True是-1(筆記)
05/11 15:02, 9F
文章代碼(AID): #1QzJCbtA (Office)