VBA: Test si string commence par une chaîne?
Dans VBA, Quel est le moyen le plus simple de tester si une chaîne commence par une sous-chaîne? Java a startsWith
. Existe-t-il un équivalent VBA?
2 réponses
Il y a plusieurs façons de le faire:
InStr
Vous pouvez utiliser la fonction InStr
pour tester si une chaîne contient une sous-chaîne. {[2] } retourne soit l'index de la première correspondance, soit 0. Vous pouvez donc tester si une chaîne commence par une sous-chaîne en procédant comme suit:
If InStr(1, "Hello World", "Hello W") = 1 Then
MsgBox "Yep, this string begins with Hello W!"
End If
Si InStr
renvoie 1
, alors la chaîne ("Hello World"), commence par la sous-chaîne ("Hello W").
Comme
Vous pouvez également utiliser l'opérateur de comparaison like
avec certains modèle de base correspondant:
If "Hello World" Like "Hello W*" Then
MsgBox "Yep, this string begins with Hello W!"
End If
En cela, nous utilisons un astérisque ( * ) pour tester si la chaîne commence par notre sous-chaîne.
A en juger par la déclaration et la description de la fonction startsWith
Java , le "moyen le plus simple" de l'implémenter dans VBA serait soit avec Left
:
Public Function startsWith(str As String, prefix As String) As Boolean
startsWith = Left(str, Len(prefix)) = prefix
End Function
Ou, si vous voulez avoir le paramètre offset disponible, avec Mid
:
Public Function startsWith(str As String, prefix As String, Optional toffset As Integer = 0) As Boolean
startsWith = Mid(str, toffset + 1, Len(prefix)) = prefix
End Function