VBA Compare Strings - StrComp

No VBA, você pode comparar duas strings usando o StrComp função. Neste tutorial, você aprenderá como usar essa função com diferentes métodos de comparação.

Se você quiser aprender como usar o VBA Like Operator para comparar correspondências inexatas, clique aqui: VBA Like Operator.

Se você quiser aprender como usar operadores de comparação, clique aqui: VBA Comparison Operators - Not Equal to & More

Usando a função StrComp para comparar duas strings

o StrComp função leva duas strings e método de comparação como argumentos. Existem 3 métodos de comparação:

  • vbBinaryCompare - compara duas strings binárias (diferencia maiúsculas de minúsculas);
  • vbTextCompare - compara duas strings como textos (não faz distinção entre maiúsculas e minúsculas);
  • vbDatabaseCompare - este método está disponível apenas no Microsoft Access e não no VBA.

Por padrão, a função usa o método binário. Se omitirmos esse argumento, a função fará distinção entre maiúsculas e minúsculas.

A função retorna os seguintes resultados:

  • 0 - se as strings são iguais;
  • -1 - se a string 1 for menor que a string 2;
  • 1 - se a string 1 for maior que a string 2;
  • Nulo - se uma das strings estiver vazia.

Aqui está o código de exemplo:

123 Dim intResult As IntegerintResult = StrComp ("Computador", "Computador")

Neste exemplo, queremos verificar se as strings "Computador" e "Computador" são iguais, usando o método de comparação padrão (binário). O resultado da função está no intResult variável. Como você pode ver na imagem, ambas as strings são iguais, portanto, o intResult tem valor 0.

Imagem 1. Usando a função StrComp com o método binário em VBA

Usando a função StrComp com método binário e textual

Agora você verá a diferença entre usar o método binário e o textual. O método binário tem um número binário para cada caractere, portanto, maiúsculas e minúsculas são caracteres diferentes neste método. Por outro lado, o método textual considera “S” e “s” como as mesmas letras. Se você quiser que a função não faça distinção entre maiúsculas e minúsculas, você precisa definir o terceiro argumento como vbBinaryCompare. Aqui está o código:

123456 Dim intResult1 As IntegerDim intResult2 As IntegerintResult1 = StrComp ("Computador", "CompuTer")intResult2 = StrComp ("Computador", "CompuTer", vbTextCompare)

Queremos comparar strings "Computador" e "Computador", usando ambos os métodos.

Na variável intResult1, obteremos o valor com o método binário, enquanto o intResult2 obterá o valor com o método textual. Você pode ver os valores dessas duas variáveis:

Imagem 2. Usando a função StrComp com método binário e textual

O valor de intResult1 é 1, o que significa que duas strings são diferentes para o método binário. Para o método textual, essas duas strings são iguais, então o valor de intResult2 é 0.

wave wave wave wave wave