首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBA语言中,如何"if cbo.Column(0) =“确定值1”则

在VBA语言中,如何"if cbo.Column(0) =“确定值1”则
EN

Stack Overflow用户
提问于 2017-11-20 22:08:28
回答 2查看 125关注 0票数 0

(让我们先告诉大家我是一个真正的编程新手)

我需要检查combox列字段中的多个值,如下所示:

代码语言:javascript
复制
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”。

或者看起来在这里行不通。

EN

回答 2

Stack Overflow用户

发布于 2017-11-20 22:19:21

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

代码语言:javascript
复制
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条件。

票数 2
EN

Stack Overflow用户

发布于 2017-11-20 22:22:09

通常,您可以选择使用函数,该函数会告诉您某个值是否在给定值数组中。如下所示:

代码语言:javascript
复制
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

函数valueInArray告诉您一个值是否存在于数组中。在您的例子中,它可以像这样使用:

代码语言:javascript
复制
if valueInArray(me.cbo.Column(0), Array("certain value 1","certain value 2")) then
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47393965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档