查找范围内VBA数组中的至少一个项目

时间:2016-10-21 14:37:35

标签: excel vba excel-vba

我目前正在尝试在继续之前在一个范围内找到我的数组中的至少一个项目,但我目前正在进行的方式检查所有值是否在范围内。

If Not accountRange.find(Array(11571, 11572, 11573, 11574, 11575)) Is Nothing Then

理想情况下,我有这样的事情:

If Not accountRange.find(Array(11571, xlOr, 11572, xlOr, 11573, xlOr, 11574, xlOr, 11575))

我能看到的唯一解决方法是单独检查每个条件,如下所示:

If Not accountRange.find(11571) Is Nothing Or _ 
    Not accountRange.Find(11572) Is Nothing Or _
    Not accountRange.Find(11573) Is Nothing Or _
    Not accountRange.Find(11574) Is Nothing Or _
    Not accountRange.Find(11575) Is Nothing Then

但是当我在范围内检查更多东西时,这显然会变得乏味。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

你可以写一个这样的函数:

Function ValInRange(vals As Variant, R As Range) As Boolean
    Dim item As Variant
    For Each item In vals
        If Not R.Find(item) Is Nothing Then
            ValInRange = True
            Exit Function
        End If
    Next item
End Function

如果其中一个传递的数字在范围内,ValInRange(Array(11571, 11572, 11573, 11574, 11575), accountRange)将返回True。否则,它返回默认的布尔值False