2017-03-17 5 views
2

これは間違っていますのでごめんなさい。私は、変数aが、その後、いくつかの整数の集合の要素であるならば、私が書いた場合...それがうまくいく旨Ifステートメントを持つようにしたい:Excel VBAで条件文の可能な値を列挙できますか?

= 1,6,12,19場合、

または私は= 1または= 6または= 12または= 19次に

+0

を使用することができますか? – Comintern

+1

case文を使用できます。例えば。 '公共の機能テスト(A) のSelect Case 1、2、3、4、5、6 は「[関数の中で何か エンドを選択SQLに相当VBA]の 終了Function' – 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'を使います。それは美しいものです! 'else else'を忘れないでください。それは必須ではありませんが、あなたの 'end select'の前にそれを貼り付けるのは良い習慣ですので、オプションがあることを忘れないでください:) – 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 
関連する問題