Operador Like

Usado para comparar duas cadeias de caracteres.

Sintaxe

Resultado = cadeia decaracteres Comopadrão

A sintaxe do operador Like contém estas partes:

Parte Descrição
resultado Obrigatório; qualquervariável numérica.
cadeia de caracteres Obrigatório; qualquer expressão de cadeia de caracteres.
padrão Obrigatório; expressão de cadeia de caracteres em conformidade com as convenções padrões descritas em Comentários.

Comentários

Se a cadeia de caracteres corresponder ao padrão, o resultado será True; se não houver correspondência, o resultado será False. Se a cadeia de caracteres ou o padrão for Null, o resultado será Null.

O comportamento do operador Like depende da instrução Option Compare. O método padrão comparação de cadeia de caracteres para cada módulo é a Option Compare Binary.

A Option Compare Binary resulta em comparações de cadeias de caracteres com base em uma ordem de classificação derivada de uma representação binária de caracteres. A ordem de classificação é determinada pela página de código.

No exemplo a seguir, uma ordem de classificação binária típica é mostrada:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

A Option Compare Text resulta em comparações de cadeia de caracteres com base em uma ordem de classificação textual de maiúsculas e minúsculas determinada pelo local do sistema. Quando você ordena os mesmos caracteres usando a Option Compare Text, a seguinte ordem de classificação é produzida:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

A correspondência de padrões interna fornece uma ferramenta versátil para comparações de cadeias de caracteres. Os recursos de correspondência de padrão permitem o uso de caracteres curinga, listas de caracteres ou intervalos de caracteres, em qualquer combinação, para fazer correspondência com cadeias de caracteres. A tabela a seguir mostra os caracteres permitidos no padrão e a correspondência deles:

Caracteres em padrão Correspondências na cadeia de caracteres
? Qualquer caractere simples.
* Zero ou mais caracteres.
# Um dígito qualquer (0 a 9).
[ charlist ] Qualquer caractere único em charlist.
[ !charlist ] Um caractere único não incluído em charlist.

Um grupo de um ou mais caracteres (charlist) entre colchetes ([ ]) pode ser usado para combinar qualquer caractere único na cadeia de caracteres e pode incluir quase todos os códigos de caracteres, incluindo dígitos.

Observação

Para corresponder ao colchete esquerdo de caracteres especiais ([), ponto de interrogação (?), sinal de jogo da velha (#), e asterisco (*), coloque-os entre os colchetes. O colchete direito (]) não pode ser usado dentro de um grupo para corresponder a si mesmo, mas pode ser usado fora do grupo como um caractere individual.

Ao usar um hífen ( - ) para separar os limites superiores e inferiores do intervalo, a charlist pode especificar um intervalo de caracteres. Por exemplo, [A-Z] resulta em uma correspondência se a posição do caractere correspondente na cadeia de caracteres contiver letras em maiúsculas no intervalo A–Z. Vários intervalos são incluídos dentro dos colchetes sem delimitadores.

O significado de um intervalo especificado depende do caractere em uma organização válida no tempo de execução (como determinado pela Option Compare e pela definição local do sistema do código em execução). Usando o exemplo da Option Compare Binary, o intervalo [A-E] corresponde a: A, B e E. Com a Option Compare Text, [A-E] correspondendo a: A, a, À, à, B, b, E, e. O intervalo não corresponde a Ê ou ê, porque os caracteres acentuados ficam atrás de caracteres sem acento na ordem de classificação.

A seguir estão outras regras importantes para correspondência de padrões:

  • Um ponto de exclamação (!) no início da charlist significa que haverá uma correspondência se qualquer caractere, exceto os da charlist, for encontrado na cadeia de caracteres. Quando usado fora dos colchetes, o ponto de exclamação corresponde a ele mesmo.
  • Um hífen ( - ) pode aparecer no início (depois de um ponto de exclamação, se este for usado) ou no final da charlist para corresponder a si próprio. Em outro local, o hífen é usado para identificar um intervalo de caracteres.
  • Quando um intervalo de caracteres é especificado, ele deve aparecer em uma ordem de classificação crescente (do menor para o maior). [A-Z] é um padrão válido, mas [Z-A] não.
  • A sequência de [] caracteres é considerada uma cadeia de caracteres de comprimento zero ("").

Em alguns idiomas, há caracteres especiais do alfabeto que representam dois caracteres separados. Por exemplo, vários idiomas usam o caractere "æ" para representar os caracteres "a" e "e", quando aparecem juntos. O operador Like reconhece um caractere especial único e os dois caracteres individuais equivalentes.

Quando um idioma que usa um caractere especial é especificado no sistema de configurações local, uma ocorrência do caractere especial único em padrão ou cadeia de caracteres corresponde a uma sequência de 2 caracteres equivalentes em outra cadeia de caracteres. Da mesma forma, um caractere especial único em padrão entre colchetes (por si mesmo, em uma lista ou em um intervalo) corresponde à sequência equivalente de 2 caracteres na cadeia de caracteres.

Exemplo

Este exemplo usa o operador Like para comparar uma cadeia de caracteres com um padrão.

Dim MyCheck
MyCheck = "aBBBa" Like "a*a"    ' Returns True.
MyCheck = "F" Like "[A-Z]"    ' Returns True.
MyCheck = "F" Like "[!A-Z]"    ' Returns False.
MyCheck = "a2a" Like "a#a"    ' Returns True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]"    ' Returns True.
MyCheck = "BAT123khg" Like "B?T*"    ' Returns True.
MyCheck = "CAT123khg" Like "B?T*"    ' Returns False.
MyCheck = "ab" Like "a*b"    ' Returns True.
MyCheck = "a*b" Like "a [*]b"    ' Returns False.
MyCheck = "axxxxxb" Like "a [*]b"    ' Returns False.
MyCheck = "a [xyz" Like "a [[]*"    ' Returns True.
MyCheck = "a [xyz" Like "a [*"    ' Throws Error 93 (invalid pattern string).

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.