在VBA中,如何“if cbo.Column(0)=”某个值1“然后

时间:2017-11-20 14:08:28

标签: vba access-vba

(让我们首先告诉我,我是一个真正的编码初学者)

我需要在combox box列字段中检查多个值,例如:

If me.cbo.Column(0) = "certain value 1" Then

If me.cbo.Column(0) = "certain value 2" Then 

If me.cbo.Column(0) = "certain value 3" Then

在一行代码中是否有任何语法?还是在同一个表达式?比如“特定值1”或“特定值2”。

或者似乎没有在这里工作。

2 个答案:

答案 0 :(得分:2)

由于无法在评论中正确显示,请使用以下语法:

If me.cbo.Column(0) = "certain value 1"  OR _
   me.cbo.Column(0) = "certain value 2 " OR _ 
   me.cbo.Column(0) = "certain value 3 " OR _  ' Extend as appropriate
   me.cbo.Column(0) = "certain value n " Then

   'Do something

End If

换行符_允许您延长,同时仍能读取不同的OR条件。

答案 1 :(得分:1)

通常,您可以选择使用一个函数,该函数告诉您某个值是否在给定的值数组中。像这样:

docker run -it -p 8000:8000 --rm --name server-php-56 -v "$PWD":/app -w /app/public php:5.6 php -S 0.0.0.0:8000

函数valueInArray告诉您数组中是否存在值。在您的情况下,它可以像这样使用:

Option Explicit

Public Sub TestMe()

    Dim varArr  As Variant

    varArr = Array("test", "me", "today", "or")

    Debug.Print valueInArray("test", varArr)    'true
    Debug.Print valueInArray("test2", varArr)   'false

End Sub


Public Function valueInArray(myValue As Variant, _
                myArray As Variant, Optional isString As Boolean = False) As Boolean

    Dim counter  As Long

    If isString Then
        myArray = Split(myArray, ":")
    End If

    For counter = LBound(myArray) To UBound(myArray)
        myArray(counter) = CStr(myArray(counter))
    Next counter

    valueInArray = Not IsError(Application.Match(CStr(myValue), myArray, 0))

End Function