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.