Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 我可以使用数组使用like运算符比较多个条件吗?_Excel_Vba - Fatal编程技术网

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

Excel 我可以使用数组使用like运算符比较多个条件吗?,excel,vba,Excel,Vba,我可以使用Array使用Like语句比较多个条件吗 例如: LCase(Cells(lig, 2)) Like Array("object**", "**cash**", "lobby**") 不,你不能。必须在数组中循环,并分别检查数组的每个项 Dim Criteria() As Variant Criteria = Array("object**", "**cash**", "lobby**") Dim Criterion As Variant For Each Criterion In

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

例如:

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

不,你不能。必须在数组中循环,并分别检查数组的每个项

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

不,您必须在数组中循环以比较多个值

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

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

此外,您正在使用
单元格
,而没有指定工作簿/工作表。在这种情况下,VBA总是引用活动的wb&ws,这可能不是您所希望的。

或者您可以将以下语法与或一起使用

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

依此类推

虽然你能做到,但你不会想这么做,因为重复的代码是不好的代码,会导致错误。它更难维护,更难阅读,因此这是一种不好的做法。实际上,这不是有效的语法,
…比如“**cash**”)…
甚至不应该编译。实际上,有一些有趣的变体可以使用连接数组函数,但我也考虑了一些评估情况