Excel VBA IN关键字

问题描述 投票:0回答:3

在 VBA 中是否有更好的编码方法:

If x = 'a' or x = 'b' or x ='c' or x = 'd' then
...action
End if

IN 关键字在这里会非常方便:

If x IN ('a','b','c','d') then
action
End If

--> 但 VBA 无法识别 IN。语法中是否有替代关键字? 谢谢!

excel excel-2007 vba
3个回答
1
投票

FILTER()函数的目的是查看一个项目是否出现在数组中:

Sub FilterExample()
    ary = Split("a,b,c,d", ",")
    x = "b"
    If Filter(ary, x)(o) <> "" Then
        MsgBox "match found"
    End If
End Sub

1
投票

Gary's Student 的当前形式的答案在找不到匹配项时会导致错误。我相信以下更好:

x = "a"
If UBound(Filter(Array("a", "b", "c", "d"), x)) > -1 Then
    MsgBox "Match found"
End If

我确实评论说,当 x 是一个空字符串时,过滤器函数返回整个数组。因此,如果 x 是一个空字符串,上面的代码将始终返回一个匹配项。以下内容说明了这一点

x = "a"
If UBound(Filter(Array("a", "b", "c", "d"), x)) > -1 And x <> vbNullString Then
    MsgBox "Match found"
End If

0
投票
Select Case x
Case 'a', 'b', 'c', 'd'
    ' ... action
End Select    
© www.soinside.com 2019 - 2024. All rights reserved.