VBA Excel使用值作为数组的任何部分

时间:2018-08-17 10:11:32

标签: vba excel-vba

我担心的是一个非常基本的问题:

如何将值用作数组的任何部分?

Sub test()

Dim x As Variant
x = Array(1, 2, 3, 8, 9, 10, 1585)

    If InStr(Cells(1,1).Value, x) Then
        MsgBox "OK"
    End If

End Sub

在这段代码中,我试图检查单元格是否包含数组中的任何值

2 个答案:

答案 0 :(得分:1)

您可以使用Match并检查是否返回数字(这意味着在数组中找到该值)。

Sub test()

Dim x As Variant

x = Array(1, 2, 3, 8, 9, 10, 1585)

If IsNumeric(Application.Match(Cells(1, 1).Value, x, 0)) Then
    MsgBox "OK"
End If

End Sub

答案 1 :(得分:1)

或者,如果不必一定是数组,则可以简单地使用这样的字符串:

Sub test()

Dim arrayString As String

  arrayString = "1, 2, 3, 8, 9, 10, 1585"
  If InStr(1, arrayString, Cells(1, 1), vbTextCompare) > 0 Then
    MsgBox "OK"
  End If

End Sub