Comparação de strings VBA - Como comparar dois valores de string?

Comparação de strings VBA do Excel

Para comparar duas strings no VBA, temos uma função incorporada, ou seja, “ StrComp ”. Podemos lê-lo como “ Comparação de String ”, esta função está disponível apenas com VBA e não está disponível como uma função de planilha. Ele compara quaisquer duas strings e retorna os resultados como “Zero (0)” se ambas as strings forem correspondentes e se ambas as strings fornecidas não forem correspondentes, obteríamos “Um (1)” como resultado.

No VBA ou no Excel, enfrentamos muitos cenários diferentes. Um desses cenários é “comparar dois valores de string”. Em uma planilha normal, podemos fazer essas várias maneiras, mas no VBA, como você faz isso?

Abaixo está a sintaxe da função “StrComp”.

Primeiro, dois argumentos são bastante simples,

  • para String 1, precisamos fornecer qual é o primeiro valor que estamos comparando e
  • para a String 2, precisamos fornecer o segundo valor que estamos comparando.
  • (Compare) este é o argumento opcional da função StrComp. Isso é útil quando queremos comparar uma comparação com distinção entre maiúsculas e minúsculas. Por exemplo, neste argumento, “Excel” não é igual a “EXCEL” porque ambas as palavras diferenciam maiúsculas de minúsculas.

Podemos fornecer três valores aqui.

  • Zero (0) para “ Comparação binária, ou seja, “Excel”, não é igual a “EXCEL”. Para comparação com distinção entre maiúsculas e minúsculas, podemos fornecer 0.
  • Um (1) para “ Comparação de Texto, ou seja, “Excel”, é igual a “EXCEL” Esta é uma comparação sem distinção entre maiúsculas e minúsculas.
  • Dois (2) isso apenas para comparação do banco de dados.

Os resultados da função “StrComp” não são padrão TRUE ou FALSE, mas variam. Abaixo estão os diferentes resultados da função “StrComp”.

  • Obteremos “0” como resultado se as strings fornecidas forem correspondentes.
  • Obteremos “1” se as strings fornecidas não forem correspondentes e, no caso de correspondência numérica, obteremos 1 se a String 1 for maior que a string 2.
  • Obteremos “-1” se o número da string 1 for menor que o número da string 2.

Como realizar comparação de strings no VBA?

Exemplo 1

Iremos comparar “ Bangalore ” com a string “ BANGALORE ”.

Primeiro, declare duas variáveis ​​VBA como string para armazenar dois valores de string.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String End Sub

Para essas duas variáveis, armazene dois valores de string.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" End Sub

Agora declare mais uma variável para armazenar o resultado da função “ StrComp ”.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String End Sub

Para esta variável, abra a função “StrComp”.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (End Sub

Para “String1” e “String2” já atribuímos valores por meio de variáveis, portanto, insira os nomes das variáveis, respectivamente.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, End Sub

A última parte da função é “Comparar” para esta opção “vbTextCompare”.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) End Sub

Agora mostre a variável “Resultado final” na caixa de mensagem em VBA.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Ok, vamos rodar o código e ver o resultado.

Resultado:

Como ambas as strings “Bangalore” e “BANGALORE” são iguais, obtivemos o resultado como 0, ou seja, correspondência. Ambos os valores são sensíveis a maiúsculas e minúsculas, uma vez que fornecemos o argumento como “vbTextCompare”, ele ignorou a correspondência com distinção entre maiúsculas e minúsculas e correspondeu apenas os valores, então ambos os valores são iguais e o resultado é 0, ou seja, TRUE.

Código:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Exemplo # 2

For the same code, we will change the compare method from “vbTextCompare” to “vbBinaryCompare.”

Code:

Sub String_Comparison_Example2() Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now run the code and see the result.

Output:

Even though both the strings are the same, we got the result as 1, i.e., Not Matching because we have applied the compare method as “vbBinaryCompare,” which compares two values as case sensitive.

Example #3

Now we will see how to compare numerical values. For the same code, we will assign different values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Both the values are 500, and we will get 0 as a result because both the values are matched.

Output:

Now I will change the Value1 number from 500 to 100.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

We know Value1 & Value2 aren’t the same, but the result is -1 instead of 1 because for numerical comparison when the String 1 value is greater than String 2, we will get this -1.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now I will reverse the values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 1000 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

This is not special. If not match, we will get 1 only.

Things to Remember here

  • (Compare) argument of “StrComp” is optional, but in case of case sensitive match, we can utilize this, and the option is “vbBinaryCompare.”
  • The result of numerical values is slightly different in case String 1 is greater than string 2, and the result will be -1.
  • Results are 0 if matched and 1 if not matched.

Recommended Articles

Este foi um guia para a comparação de strings VBA. Aqui, discutimos como comparar dois valores de string usando a função StrComp no Excel VBA junto com exemplos e baixar um modelo do Excel. Você também pode dar uma olhada em outros artigos relacionados ao Excel VBA -

  • Guia para funções de string VBA
  • VBA Split String into Array
  • Métodos VBA SubString
  • Texto VBA

Artigos interessantes...