有没有更好的方法在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。语法中是否有替代关键字?谢谢大家!
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
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
wfauudbj3#
可以使用Select Case语句实现这类功能:
Select Case
Select Case x Case "a", "b", "c", "d" ' ... action End Select
3条答案
按热度按时间v2g6jxz61#
**FILTER()**函数的作用是查看数组中是否出现了某项:
exdqitrt2#
当前形式的加里's Student的答案在未找到匹配项时将导致错误。我认为以下是更好的:
我确实注意到,当x是一个空字符串时,filter函数返回整个数组。因此,如果x是一个空字符串,上面的语句将总是返回一个匹配。以下是对此的解释
wfauudbj3#
可以使用
Select Case
语句实现这类功能: