No VBA, você pode comparar duas strings usando o Gostar operador para verificar a correspondência das strings. Neste tutorial, você aprenderá como usar esse operador com diferentes padrões.
Se você quiser aprender como comparar strings em VBA, clique aqui: VBA Compare Strings - StrComp
Se você quiser aprender como usar operadores de comparação, clique aqui: VBA Comparison Operators - Not Equal to & More
Usando o operador similar para comparar duas strings
Com o operador Like, podemos verificar se uma string começa com um texto específico, inclui-o, etc. Por padrão, o Gostar operador compara caracteres usando o método binário. Isso significa que o operador diferencia maiúsculas de minúsculas. Se você quiser que não faça distinção entre maiúsculas e minúsculas, você precisa colocar Texto de comparação de opções na parte superior do seu módulo. Usando este método, o Gostar operador considera “S” e “s” os mesmos caracteres. Em nossos exemplos, usaremos a comparação padrão, que diferencia maiúsculas de minúsculas.
Se a correspondência existir, o Gostar operador retorna True como resultado ou False caso contrário.
Primeiro, veremos o exemplo simples onde queremos verificar se nossa variável de string começa com Sr. Para fazer isso, você precisa colocar um asterisco (*) no final do texto correspondente (Sr*) Aqui está o código:
1234567891011121314 | Sub LikeDemo ()Dim strNome como stringDim blnResult As BooleanstrName = "Sr. Michael James"Se strNome Like "Mr *" EntãoblnResult = TrueOutroblnResult = FalseFim seEnd Sub |
Neste exemplo, queremos verificar se string strNome começa com Sr e retornar Verdadeiro ou Falso na variável blnResult.
Primeiro, definimos o valor de strNome para Sr. Michael James:
1 | strName = "Sr. Michael James" |
Então usamos o Gostar operador na instrução If:
12345 | Se strNome Like "Mr *" EntãoblnResult = TrueOutroblnResult = FalseFim se |
Enquanto o strNome começa com Sr, a blnResult retorna True:
Imagem 1. Usando o operador Like para verificar se a string começa com certos caracteres
Usando o Operador Semelhante com Diferentes Padrões de Correspondência
O operador Like pode verificar a correspondência de duas strings com base em padrões diferentes. Aqui está a lista de possíveis padrões de correspondência:
Código padrão |
Tipo de correspondência |
* | Corresponde a 0 ou mais caracteres |
? | Corresponde a um único caractere |
# | Corresponde a um único dígito |
[chars] | Corresponde a um único caractere de uma lista de caracteres |
[A-Z] | Corresponde a qualquer caractere maiúsculo do alfabeto |
[A-Za-z] | Corresponde a qualquer caractere do alfabeto |
[! chars] | Corresponde a um único caractere, excluindo uma lista de caracteres |
Agora podemos ver como usar esses padrões no código. Aqui está o exemplo para vários padrões:
Correspondência de um único caractere:
1234567 | strText1 = "ABCDE"Se strText1 gostar de "AB? DE" EntãoblnResult1 = TrueOutroblnResult1 = FalseFim se |
Correspondência de um único dígito:
1234567 | strText2 = "AB7DE"Se strText2 gostar de "AB # DE", entãoblnResult2 = TrueOutroblnResult2 = FalseFim se |
Correspondência de qualquer caractere maiúsculo do alfabeto:
1234567 | strText3 = "ABCDE"Se strText3 gostar de "AB [A-Z] DE", entãoblnResult3 = TrueOutroblnResult3 = FalseFim se |
Não corresponde a nenhum caractere maiúsculo do alfabeto:
1234567 | strText4 = "AB7DE"Se strText4 gostar de "AB [! A-Z] DE", entãoblnResult4 = TrueOutroblnResult4 = FalseFim se |
Corresponde a qualquer caractere do alfabeto (maiúsculas ou minúsculas):
1234567 | strText5 = "ABcDE"Se strText5 gostar de "AB [A-Za-z] DE", entãoblnResult5 = TrueOutroblnResult5 = FalseFim se |
Quando você executa o código, você pode ver que o Gostar operador retorna True em blnResult variáveis para cada comparação:
Imagem 2. Usando o operador Like com diferentes padrões de correspondência