Comparer les chaînes dans VBA
Nous présenterons comment comparer des chaînes avec différentes méthodes dans VBA.
Comparer les chaînes dans VBA
Lorsque vous travaillez avec des feuilles Excel, il existe certaines situations dans lesquelles nous devons comparer des chaînes et voulons obtenir des résultats sur quelle chaîne est inférieure ou supérieure à l’autre. VBA fournit une méthode parfaite à cet effet connue sous le nom de StrComp()
, qui compare deux chaînes pour obtenir les résultats en valeurs numériques.
Si les deux chaînes que nous comparons sont égales, cette méthode renverra 0
. Si la première chaîne est inférieure à l’autre chaîne, nous obtiendrons le -1
comme valeur de retour.
Si la première chaîne d’entrée est plus grande que l’autre chaîne, nous obtiendrons la valeur 1
en conséquence. Si l’une des chaînes saisies par l’utilisateur est vide, la valeur de retour sera Null
.
Trois méthodes de comparaison sont utilisées par la méthode StrComp()
, mais seules deux sont les plus couramment utilisées, et nous aborderons ces deux méthodes. Si nous voulons comparer le binaire de deux chaînes, nous pouvons utiliser le vbBinaryCompare
, et cette méthode est sensible à la casse.
Si nous voulons comparer le texte des deux chaînes, nous pouvons utiliser le vbTextCompare
, une méthode insensible à la casse. Prenons un exemple et comparons deux chaînes.
Code:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World"
compare = StrComp(stringOne, stringTwo)
MsgBox compare
End Sub
Production:
Dans l’exemple ci-dessus, nous avons transmis les mêmes chaînes que nous avons obtenues 0
comme valeur de retour. Passons différentes valeurs et vérifions quelle valeur de retour nous obtenons.
Code:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World!"
compare = StrComp(stringOne, stringTwo)
MsgBox compare
End Sub
Production:
À partir du code ci-dessus, nous avons passé les différentes chaînes de longueur, nous avons obtenu -1
comme valeur de retour car la deuxième chaîne était supérieure à la première. Essayons les méthodes de comparaison de chaînes dans StrComp()
et vérifions comment les résultats diffèrent si nous utilisons les mêmes chaînes mais différentes en majuscules et utilisons la méthode vbTextCompare
.
Code:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello WorLd"
compare = StrComp(stringOne, stringTwo, vbTextCompare)
MsgBox compare
End Sub
Production:
Maintenant, nous utilisons la méthode vbBinaryCompare
dans notre exemple en ajoutant un seul espace supplémentaire.
Code:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World"
compare = StrComp(stringOne, stringTwo, vbBinaryCompare)
MsgBox compare
End Sub
Production:
De cette façon, nous pouvons comparer deux chaînes en fonction de leur longueur ou du texte en utilisant la méthode StrComp()
avec des méthodes intégrées telles que vbTextCompare
et vbBinaryCompare
.