VBA Select Case e operador Like

Faça uma pergunta


Se você chegou até aqui, você sabe pelos seus testes, que o Select Case não aceita o operador Like. Mas saiba que, existem várias maneiras de contornar esse problema, principalmente com os If ElseIf, etc. O código proposto aqui vai ajudar a resolver alguns casos.

Select Case & Like le test

Tente o seguinte código para verificar a afirmação da introdução.

Sub Select_Case_Like()
palavra = "KAKAO"
Select Case palavra
    Case palavra Like "*K*K*"
        MsgBox "bom"
    Case Else
        MsgBox "ruim"
End Select
End Sub


Seja qual for o conteúdo da variável 'palavra', ele sempre retornará o 'ruim'. Select Case não gosta do Like.

Teste de expressão: True

A solução para usar o operador Like em um Select Case é adicionar a palavra True (Falsa).

Veja um exemplo de código :

Sub Select_Case_True_Like()
palavra = "KAO"
Select Case True
    Case palavra Like "*K*K*"
        MsgBox "bom"
    Case Else
        MsgBox "ruim"
End Select
palavra = "KAKAO"
Select Case True
    Case palavra Like "*K*K*"
        MsgBox "bon"
    Case Else
        MsgBox "ruim"
End Select
End Sub

Uma função booleana muito útil

A função

Function Case_True_Like(mot As String) As Boolean
Select Case True
    Case palavra Like "*K*K*"
        Case_True_Like = True
    Case Else
        Case_True_Like = False
End Select
End Function

A chamada desta função

Sub Test()
MsgBox Case_True_Like("KAKAO")
End Sub


Esta dica é uma alternativa para o If ElseIf, útil em casos de preferir Select Case, é indispensável testar com Like.
Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM

Veja também