我可以使用like运算符使用数组比较多个条件吗?

时间:2019-04-30 12:07:49

标签: excel vba

我可以使用Array语句使用Like来比较多个条件

示例:

LCase(Cells(lig, 2)) Like Array("object**", "**cash**", "lobby**")

3 个答案:

答案 0 :(得分:2)

不,你不能。您必须遍历数组并分别检查数组的每个项目。

Dim Criteria() As Variant
Criteria = Array("object**", "**cash**", "lobby**")

Dim Criterion As Variant
For Each Criterion In Criteria
    If LCase(Cells(lig, 2)) Like Criterion Then 
        '...
    End If 
Next Criterion

答案 1 :(得分:0)

否,您将不得不遍历数组以比较多个值。

对于一维数组,请尝试以下

Dim arr As Variant
arr = Array("object*", "*cash*", "lobby*")
For i = LBound(arr) To UBound(arr)
    If LCase(Cells(lig, 2)) Like arr(i) Then
        'Do something
    End If
Next i

此外,您正在使用Cells而不指定工作簿/工作表。在这种情况下,VBA始终引用活动的wb和ws,而这可能并非您所希望的。

答案 2 :(得分:0)

或者您可以对Or使用以下语法

(LCase(Cells(lig, 2)) Like "object**") Or (LCase(Cells(lig, 2)) Like "**cash**") Or (LCase(Cells(lig, 2)) Like "lobby**")  

依此类推