情况是这样,不是经常要判断if x=b or x=y or x=z then 这样的条件吗。我想可否类似SQL中的 where x in('b','y','z'),不用写那么多or了。
可以自己写函数,比如:Function Include(sou, ParamArray arrFind()) As Boolean Dim arr For Each arr In arrFind If sou = arr Then Include = True End If Next End Function'测试 Private Sub Command1_Click() Debug.Print Include(100, 2, 10, 3) Debug.Print Include(100, 2, 100, 3) Debug.Print Include("张三", "AB", "xtdg", "张三丰", "李四") Debug.Print Include("张三", "AB", "xtdg", "张三", "李四") End Sub
也可以稍改下:Function Include(sou, ParamArray arrFind()) As Boolean Dim arr For Each arr In arrFind If sou = arr Then Include = True Exit Function End If Next End Function
Function Include(sou, ParamArray arrFind()) As Boolean 这个函数中,第一个参数sou就是你10楼示例IF语句中的x,参数arrFind就是你示例中的abc,可以任意数量...
其他的可以考虑switch函数
没有真正类似的
在VB里可以直接调用SQL语句。不妨把你想做的事情说的更具体些,大家才好帮你出主意
Dim arr
For Each arr In arrFind
If sou = arr Then
Include = True
End If
Next
End Function'测试
Private Sub Command1_Click()
Debug.Print Include(100, 2, 10, 3)
Debug.Print Include(100, 2, 100, 3)
Debug.Print Include("张三", "AB", "xtdg", "张三丰", "李四")
Debug.Print Include("张三", "AB", "xtdg", "张三", "李四")
End Sub
Dim arr
For Each arr In arrFind
If sou = arr Then
Include = True
Exit Function
End If
Next
End Function
这个函数中,第一个参数sou就是你10楼示例IF语句中的x,参数arrFind就是你示例中的abc,可以任意数量...
filter函数,在一个数组判断查找有没有指定的值存在
谢谢提供个思路,这样也是个办法,不过麻烦了些,倘若就几个or的话还是直接写算了,比写函数快些。