在VBA中缩短Like语句

时间:2018-08-02 12:48:00

标签: vba

有什么办法可以缩短VBA中的Like语句

func mqtt(_ mqtt: CocoaMQTT, didConnectAck ack: CocoaMQTTConnAck) {
    debugPrint("did Connect Ack: \(ack)")
    mqtt.publish("/led", withString: "ligar")
}

4 个答案:

答案 0 :(得分:6)

您可以通过使用方括号将所有这些比较组合到两个语句中,方括号匹配其中的任何一个字符:

If ibasic Like "[ABF][1-8]*" OR ibasic Like "[CS]1*" Then

破折号在此处表示一系列字符。

答案 1 :(得分:1)

Array()中传递选项,在单独的函数中循环通过它们并返回结果:

Public Sub TestMe()

    Dim myInput As String: myInput = "A243"
    Dim myLikes As Variant

    myLikes = Array("A1*", "A2*", "A3*")
    Debug.Print CheckLikes(myLikes, myInput)

End Sub

Public Function CheckLikes(myLikes As Variant, myInput As String) As Boolean
    Dim myVars As Variant

    For Each myVars In myLikes
        If myInput Like myVars Then
            CheckLikes = True
            Exit For
        End If
    Next

End Function

答案 2 :(得分:1)

您可以使用Select Case语句列出备用项,首先提取左侧的两个字符:

data = "A100"

Select Case Left(data, 2)
    Case "A1", "A2": 'etc.
        Debug.Print True
    Case Else:
        Debug.Print False
End Select

答案 3 :(得分:1)

尝试

If CBool(InStr(1, "|A1|A2|A3|A4|A5|A6|", "|" & Left(ibasic, 2) & "|", vbTextCompare)) Then
    'true, do something ...
End If