Impedir VBA com distinção entre maiúsculas e minúsculas - Texto de comparação de opções

Ao trabalhar no VBA, geralmente você precisa comparar strings. Por padrão, VBA diferencia maiúsculas de minúsculas, portanto, se você comparar dois textos iguais e um deles estiver em maiúsculas e o outro em minúsculas, o VBA os considerará como textos diferentes. Neste tutorial, você verá como evitar que o VBA faça distinção entre maiúsculas e minúsculas.

Tornando o VBA insensível a maiúsculas e minúsculas

Para tornar o VBA insensível a maiúsculas e minúsculas, você precisa colocar Texto de comparação de opções no início do módulo. Primeiro, veremos o comportamento padrão do VBA sem esse conjunto de opções. Este é o código:

123456789 Se Folha1.Range ("A1"). Valor = Folha1.Range ("B1"). Valor EntãoMsgBox "Dois textos são iguais"OutroMsgBox "Dois textos são diferentes"Fim se

No exemplo, queremos comparar as strings de A1 e B1. Se as strings forem iguais, retornaremos a caixa de mensagem com a mensagem “Dois textos são iguais”. Se não forem iguais, retornaremos a mensagem “Dois textos são diferentes.

Imagem 1. Comparando as strings sem a opção Compare Text

Como você pode ver na imagem, os dois textos são iguais, mas o primeiro está em caixa alta, enquanto o segundo está em caixa baixa. Por causa disso, o VBA os considera diferentes e retornou esta mensagem.

1234567891011 Texto de comparação de opçõesPublic Sub CaseSensitiveTest ()Se Folha1.Range ("A1"). Valor = Folha1.Range ("B1"). Valor EntãoMsgBox "Dois textos são iguais"OutroMsgBox "Dois textos são diferentes"Fim seEnd Sub

Agora vamos adicionar Option Compare Text no início do módulo e ver a diferença. Aqui está o código. Executamos o código no mesmo exemplo:

Imagem 2. Comparando as strings com a opção Compare Text

Agora, quando a opção Option Compare Text é definida, o VBA torna-se insensível a maiúsculas e minúsculas e considera esses dois textos iguais.

Comparando Texto

Se você não declara Texto de comparação de opções, você pode converter casos de string para fazer comparações que não diferenciam maiúsculas de minúsculas. Isso é possível pela função UCase, LCase ou StrConv. Você pode descobrir mais sobre isso aqui: VBA Superior, Inferior e Caixa apropriada - Funções de caixa

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave