VBA发现值是否在值中

Jaa*_*nus 6 vba

我有一个值y,我想知道这个值是否在这组值中:x1, x2, ... xn.

我可以这样做:

if(y = x1 or y = x2 or .....)
Run Code Online (Sandbox Code Playgroud)

但是有更好的方法吗?伪代码:

if(y in (x1, x2, ...., xn))
Run Code Online (Sandbox Code Playgroud)

Chr*_*cht 5

您可以编写一个像这样的辅助函数:

Public Function FindValue(ByVal ValueToFind As Variant, ParamArray SearchIn() As Variant)

    Dim i As Integer

    For i = 0 To UBound(SearchIn)
        If SearchIn(i) = ValueToFind Then
            FindValue = True
            Exit Function
        End If
    Next

End Function
Run Code Online (Sandbox Code Playgroud)

第二个参数 (the ParamArray) 是一个数组,因此您实际上可以传递不定数量的参数。

因此,您可以将所有值传递给此函数 - 您想要首先查找的值,然后是您想要搜索的所有值:

Dim Found As Boolean

Found = FindValue(y, x1, x2, x3, xn)
Run Code Online (Sandbox Code Playgroud)