Excel VBA IN关键字

rlcwz9us  于 2023-05-08  发布在  其他
关注(0)|答案(3)|浏览(155)

有没有更好的方法在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。语法中是否有替代关键字?谢谢大家!

v2g6jxz6

v2g6jxz61#

**FILTER()**函数的作用是查看数组中是否出现了某项:

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

exdqitrt2#

当前形式的加里's Student的答案在未找到匹配项时将导致错误。我认为以下是更好的:

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

我确实注意到,当x是一个空字符串时,filter函数返回整个数组。因此,如果x是一个空字符串,上面的语句将总是返回一个匹配。以下是对此的解释

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

wfauudbj3#

可以使用Select Case语句实现这类功能:

Select Case x
    Case "a", "b", "c", "d"
        ' ... action
End Select

相关问题