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**”)…
甚至不应该编译。实际上,有一些有趣的变体可以使用连接数组函数,但我也考虑了一些评估情况