作者bank89902595 (阿虎几)
看板Office
标题[问题] VBA如何用一条IF完成多条件,Array可行吗
时间Sun May 29 12:23:59 2022
软体:Excel
版本:365
执行VBA时会先要求输入月份,若输入1~12以外的值要终止
先设月份容器是m
IF m < 1 then
Exit Sub
ElseIF m > 12 then
Exit Sub
End if
但也有可能误植成其他值,所以想完全排除1~12以外的值
也不可能将每一条可能会打错得条件都写进去
有想到用Array但不太明白怎麽写
目前这样写是跑不动的,不知道错在哪?
Dim k as String
k = Array("1","2","3","4","5","6","7","8","9","10"."11","12")
IF m <> k then
Exit Sub
End
还请指点 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 115.165.193.116 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1653798241.A.476.html
※ 编辑: bank89902595 (115.165.193.116 台湾), 05/29/2022 12:24:58
※ 编辑: bank89902595 (39.8.227.126 台湾), 05/29/2022 14:48:08
1F:→ suaveness: If m < 1 Or m > 12 then Exit Sub 这样试试看?05/29 20:04
2F:推 mddc62: 为什麽不正面表列 m>=1 and m<=12 then ... end if05/29 21:07
因为另一方面也想知道,假设今天条件有50个,甚至更多,是不是有比or 或 and 更单纯
的写法
※ 编辑: bank89902595 (39.8.227.126 台湾), 05/30/2022 00:16:21
3F:推 newacc: Select Case呢? 05/30 11:10
5F:推 tncshes86229: 其实上面的写法也可简化用回圈写,如果今天条件很多 05/30 14:58
6F:→ tncshes86229: 再用阵列比较好~ 05/30 14:58
7F:→ waiter337: 直接设定容器就好了 redim (1 to 12) 05/30 23:32
8F:→ waiter337: 甚至 redim (2000 to 2050 ,1 to 12) 05/30 23:33
9F:→ waiter337: redim k(1 to 12) 05/30 23:35
10F:→ waiter337: if 1<=m and m<=12 then debug.print k(m) 05/30 23:36
感谢大家~
※ 编辑: bank89902595 (115.165.193.116 台湾), 05/31/2022 21:54:27