VBA Like Operator
Like é um operador em VBA e este é um operador de comparação que compara uma determinada string como argumento em um conjunto de strings e corresponde ao padrão, se o padrão for correspondido, o resultado obtido é verdadeiro e se o padrão não corresponder, então o o resultado obtido é falso, este é um operador embutido no VBA.
O operador “LIKE” é o menos utilizado, apesar de seu uso maravilhoso. Não tenho visto muitas pessoas que usam esse operador em toda a sua extensão em sua codificação, Na verdade, eu sou um deles que não usa esse operador com freqüência. O operador “VBA LIKE” nos permite comparar o padrão da string com a string inteira. Usando o operador VBA LIKE, podemos comparar duas strings com o padrão fornecido. Podemos verificar se a string contém uma substring em VBA ou também se a string contém algum formato específico. Se o padrão corresponder à string, o operador VBA LIKE retornará TRUE ou FALSE.
Ao combinar strings, precisamos usar caracteres curinga para o padrão que especificamos. Abaixo estão os curingas que usamos no operador VBA LIKE.
- Ponto de interrogação (?): É usado para corresponder a qualquer caractere da string. Por exemplo, se temos uma string “CAT” e o padrão é “C? T”, então o operador VBA LIKE retorna TRUE. Se a string for “CATCH e os padrões forem“ C? T ”, o operador VBA LIKE retornará FALSE.
- Asterisco (*): Corresponde a zero ou mais caracteres. Por exemplo, se a string for “Good” e o padrão for “G ** d”, o operador VBA LIKE retornará TRUE.
- Colchetes ([]): Corresponde a qualquer caractere único especificado nos colchetes.
- [Char-Char]: Corresponde a qualquer caractere único no intervalo Char-Char.
- [! Chars]: Corresponde a qualquer caractere único que não esteja na lista.
- [! Char-Char]: Corresponde a qualquer caractere único que não esteja no intervalo Char-Char.
Exemplos de operador VBA LIKE
Vamos ver alguns dos exemplos do operador VBA LIKE agora.
Você pode baixar este modelo VBA Like Excel aqui - VBA Like Excel Template
Exemplo # 1 - com ponto de interrogação
Código:
Sub QuestionMark_Example1 () Dim k As String k = "Bom" If k Like "Go? D" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
No código acima, fornecemos a string como “Good” e o padrão é “Go? D”. Visto que o ponto de interrogação pode corresponder a um único caractere, o resultado será “Sim”.
Agora vou mudar a string para “Good Morning”.
Código:
Sub QuestionMark_Example1 () Dim k As String k = "Bom dia" If k Like "Go? D" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
Nesse caso, ele mostrará “Não” porque adicionamos mais uma palavra à string, ou seja, Manhã. Para corresponder a qualquer número de caracteres, precisamos usar o asterisco.
Exemplo # 2 - com asterisco
Código:
Sub QuestionMark_Example2 () Dim k As String k = "Bom dia" If k Like "* Good *" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
No exemplo acima, adicionei dois asteriscos antes e depois do caractere “* Bom *”. Isso corresponderá à palavra “Good” na string “Good Morning” e retornará “Yes”.
Exemplo # 3 - Com colchetes []
Código:
Sub QuestionMark_Example3 () Dim k As String k = "Bom dia" If k Like "* [M] *" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
O código acima corresponde à única letra mencionada no colchete “M” e retorna o resultado como Sim.
Exemplo # 4 - Com colchetes e alfabetos [AZ]
Código:
Sub QuestionMark_Example4 () Dim k As String k = "Bom dia" If k Like "* [AD] *" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
Acima, eu mencionei os caracteres para corresponder de A a D.
Isso retornará “Não” porque não há caracteres de A a D na string “Bom dia” .
Agora vou mudar o padrão para [AH]
Código:
Sub QuestionMark_Example4 () Dim k As String k = "Bom dia" If k Like "* [AH] *" Then MsgBox "Sim" Else MsgBox "Não" End If End Sub
Isso retornará "Sim" porque de A a H temos um caractere "G" na string "Bom dia"
Assim, podemos usar o operador VBA “LIKE” para combinar qualquer string do padrão com caracteres curinga.