作者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/cn.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