[問題] VBA如何用一條IF完成多條件,Array可行嗎

看板Office作者 (阿虎幾)時間1年前 (2022/05/29 12:24), 1年前編輯推噓4(406)
留言10則, 5人參與, 1年前最新討論串1/1
軟體: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://www.ptt.cc/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

05/29 20:04, 1年前 , 1F
If m < 1 Or m > 12 then Exit Sub 這樣試試看?
05/29 20:04, 1F

05/29 21:07, 1年前 , 2F
為什麼不正面表列 m>=1 and m<=12 then ... end if
05/29 21:07, 2F
因為另一方面也想知道,假設今天條件有50個,甚至更多,是不是有比or 或 and 更單純 的寫法 ※ 編輯: bank89902595 (39.8.227.126 臺灣), 05/30/2022 00:16:21

05/30 11:10, 1年前 , 3F
Select Case呢?
05/30 11:10, 3F

05/30 14:44, 1年前 , 4F

05/30 14:58, 1年前 , 5F
其實上面的寫法也可簡化用迴圈寫,如果今天條件很多
05/30 14:58, 5F

05/30 14:58, 1年前 , 6F
再用陣列比較好~
05/30 14:58, 6F

05/30 23:32, 1年前 , 7F
直接設定容器就好了 redim (1 to 12)
05/30 23:32, 7F

05/30 23:33, 1年前 , 8F
甚至 redim (2000 to 2050 ,1 to 12)
05/30 23:33, 8F

05/30 23:35, 1年前 , 9F
redim k(1 to 12)
05/30 23:35, 9F

05/30 23:36, 1年前 , 10F
if 1<=m and m<=12 then debug.print k(m)
05/30 23:36, 10F
感謝大家~ ※ 編輯: bank89902595 (115.165.193.116 臺灣), 05/31/2022 21:54:27
文章代碼(AID): #1YalLXHs (Office)