Comparaison des chaînes VBA - Comment comparer deux valeurs de chaîne?

Comparaison des chaînes Excel VBA

Pour comparer deux chaînes dans VBA, nous avons une fonction intégrée à savoir « StrComp ». Nous pouvons le lire comme « Comparaison de chaînes », cette fonction n'est disponible qu'avec VBA et n'est pas disponible en tant que fonction de feuille de calcul. Il compare deux chaînes quelconques et renvoie les résultats sous la forme «Zéro (0)» si les deux chaînes correspondent et si les deux chaînes fournies ne correspondent pas, nous obtiendrions alors «One (1)» comme résultat.

En VBA ou Excel, nous sommes confrontés à de nombreux scénarios différents. Un de ces scénarios consiste à «comparer deux valeurs de chaîne». Dans une feuille de calcul standard, nous pouvons faire ces différentes manières, mais en VBA, comment faites-vous cela?

Voici la syntaxe de la fonction «StrComp».

Premièrement, deux arguments sont assez simples,

  • pour la chaîne 1, nous devons fournir la première valeur que nous comparons et
  • pour String 2, nous devons fournir la deuxième valeur que nous comparons.
  • (Compare) c'est l'argument facultatif de la fonction StrComp. Ceci est utile lorsque nous voulons comparer une comparaison sensible à la casse. Par exemple, dans cet argument, «Excel» n'est pas égal à «EXCEL» car ces deux mots sont sensibles à la casse.

Nous pouvons fournir trois valeurs ici.

  • Zéro (0) pour « Binary Compare », c'est-à-dire «Excel», n'est pas égal à «EXCEL». Pour une comparaison sensible à la casse, nous pouvons fournir 0.
  • Un (1) pour « Comparaison de texte », c'est-à-dire «Excel», est égal à «EXCEL». Il s'agit d'une comparaison non sensible à la casse.
  • Deux (2) ceci uniquement pour la comparaison de bases de données.

Les résultats de la fonction «StrComp» ne sont pas TRUE ou FALSE par défaut mais varient. Voici les différents résultats de la fonction «StrComp».

  • Nous obtiendrons «0» comme résultat si les chaînes fournies correspondent.
  • Nous obtiendrons «1» si les chaînes fournies ne correspondent pas, et en cas de correspondance numérique, nous obtiendrons 1 si la chaîne 1 est supérieure à la chaîne 2.
  • Nous obtiendrons «-1» si le nombre de la chaîne 1 est inférieur au nombre de la chaîne 2.

Comment effectuer une comparaison de chaînes dans VBA?

Exemple 1

Nous allons comparer « Bangalore » à la chaîne « BANGALORE ».

Tout d'abord, déclarez deux variables VBA comme chaîne pour stocker deux valeurs de chaîne.

Code:

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

Pour ces deux variables, stockez deux valeurs de chaîne.

Code:

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

Déclarez maintenant une autre variable pour stocker le résultat de la fonction « StrComp ».

Code:

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

Pour cette variable, ouvrez la fonction «StrComp».

Code:

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

Pour «String1» et «String2», nous avons déjà attribué des valeurs via des variables, alors entrez les noms de variables, respectivement.

Code:

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

La dernière partie de la fonction est «Compare» pour ce choix «vbTextCompare».

Code:

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

Maintenant, affichez la variable «Résultat final» dans la boîte de message dans VBA.

Code:

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, exécutons le code et voyons le résultat.

Production:

Puisque les deux chaînes «Bangalore» et «BANGALORE» sont identiques, nous avons obtenu le résultat 0, c'est-à-dire correspondant. Les deux valeurs sont sensibles à la casse puisque nous avons fourni l'argument comme «vbTextCompare», il a ignoré la correspondance sensible à la casse et n'a fait correspondre que les valeurs, donc les deux valeurs sont identiques et le résultat est 0, c'est-à-dire TRUE.

Code:

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

Exemple # 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

Cela a été un guide pour la comparaison de chaînes VBA. Nous expliquons ici comment comparer deux valeurs de chaîne à l'aide de la fonction StrComp dans Excel VBA avec des exemples et télécharger un modèle Excel. Vous pouvez également consulter d'autres articles liés à Excel VBA -

  • Guide des fonctions de chaîne VBA
  • Chaîne divisée VBA en tableau
  • Méthodes de sous-chaîne VBA
  • Texte VBA

Articles intéressants...