2017-03-17 13 views
2

我很新很抱歉,如果這是一個愚蠢的問題。我想有一個如果聲明指出,如果變量是一組有些整數那麼的元素......將它的工作,如果我寫:你能列出一個條件語句在Excel中的可能值VBA

如果= 1,6,12,19然後

或者我會寫

如果= 1或A = 6或A = 12或一個= 19然後

+0

你嘗試了嗎? – Comintern

+1

您可以使用case語句。例如。 '公共功能試驗(a) 選擇案例一個 案例1,2,3,4,5,6 「做一些 結束選擇 結束Function' [VBA相當於SQL的 – RyanL

+1

可能的複製 '中' 功能] (http://stackoverflow.com/questions/17553700/vba-equivalent-to-sql-in-function) – Comintern

回答

5

不,你不能把它寫成if a=1,6,12,19 Then但也有一些替代品,你可以使用並且他們在answers to this previous question中被覆蓋。這是我在大多數情況下推薦的。

select case userID 
    case 1,2,3,4,5,6 
     ' do something 
end select 
+0

如果有任何超過2個條件,我總是用'select case'去。這是一件美麗的事情!別忘了'case else'。這不是必需的,但是在你選擇結束之前把它粘在那裏是一個好習慣,所以你不要忘記這個選項:) – Flibertyjibbet

1

InStr函數可以處理它作爲含有分隔選項的字符串內的分隔的子串。

if cbool(instr(1, "x1x2x3x4x5x6x", format(a, "x0x"))) then 
    'a is a number between 1 and 6 
    debug.Print a & " is in 1,2,3,4,5,6" 
end if 
0

可以使用Application.Match()方法

if Not IsError(Application.Match(a,array(1,6,12,19),0) Then 
    your code 
End If 
相關問題