VBA Select Case e operador Like

Novembro 2016



Introdução

Se você chegou até aqui, você sabe pelos seus testes, que o Select Case não aceita o operador Like. Existem várias maneiras de contornar esse problema, principalmente com os If ElseIf, etc
No entanto, o proposto aqui deveria 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".

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

Conclusão

Esta dica é apenas uma alternativa para o If ElseIf.
Ela é útil em casos em que, preferindo Select Case, é indispensável testar com Like...

Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « VBA Select Case e operador Like »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.