模仿 “IN” 操作

如何才能实现:代替模仿 “IN” 操作

if X in (1,2,3) then 

if x=1 or x=2 or x=3 then 

换句话说,怎样才能最好的一个模仿IN运营商VBA为Excel?

回答:

我不认为有一个非常优雅的解决方案。

但是,你可以尝试:

If Not IsError(Application.Match(x, Array("Me", "You", "Dog", "Boo"), False)) Then 

,或者你可以写自己的函数:

Function ISIN(x, StringSetElementsAsArray) 

ISIN = InStr(1, Join(StringSetElementsAsArray, Chr(0)), _

x, vbTextCompare) > 0

End Function

Sub testIt()

Dim x As String

x = "Dog"

MsgBox ISIN(x, Array("Me", "You", "Dog", "Boo"))

End Sub

回答:

你尝试

eval("3 in(1,2,3,4,5)") 

回答:

有没有,我所知道的。

我通常使用像一个自酿InArray()函数在http://www.freevbcode.com/ShowCode.asp?ID=1675

你也可以做一个版本,通过数组,而不是串联迭代,如果是更适合您的数据类型。

回答:

你也可以尝试CASE语句而不是IF

Select Case X 

Case 1 To 3

' Code to do something

Case 4, 5, 6

' Code to do something

Case 7

' Code to do something

Case Else

' More code or do nothing

End Select

回答:

您也可以作为描述here

回答:

使用过滤功能我现在写的......

Public Function IsInArray(FindValue As Variant, ParamArray arrEmailAttachment()) As Boolean 

Dim element As Variant

For Each element In arrEmailAttachment

If element = FindValue Then

IsInArray = True

Exit Function

End If

Next element

IsInArray = False

End Function

以上是 模仿 “IN” 操作 的全部内容, 来源链接: utcz.com/qa/260617.html

回到顶部