Was ist in VBA der einfachste Weg, um zu testen, ob ein String mit einem Teilstring beginnt? Java hat startsWith. Gibt es ein VBA-Äquivalent?
Antworten:
Es gibt verschiedene Möglichkeiten, dies zu tun:
Mit der integrierten InStrFunktion können Sie testen, ob ein String einen Teilstring enthält. InStrgibt entweder den Index der ersten Übereinstimmung oder 0 zurück. Sie können also testen, ob ein String mit einem Teilstring beginnt, indem Sie Folgendes tun:
If InStr(1, "Hello World", "Hello W") = 1 Then
MsgBox "Yep, this string begins with Hello W!"
End If
Wenn InStrzurückgegeben 1wird, beginnt der String ("Hello World") mit dem Teilstring ("Hello W").
Sie können den likeVergleichsoperator auch zusammen mit einigen grundlegenden Mustervergleichen verwenden:
If "Hello World" Like "Hello W*" Then
MsgBox "Yep, this string begins with Hello W!"
End If
In diesem Fall verwenden wir ein Sternchen (*), um zu testen, ob der String mit unserer Teilzeichenfolge beginnt.
InStrerledigt den Job, aber es scheint nicht Likein VBScript zu sein (siehe stackoverflow.com/a/30301238/61508 )
Gemessen an der Deklaration und Beschreibung der startsWithJava-Funktion wäre der "einfachste Weg", sie in VBA zu implementieren, entweder Left:
Public Function startsWith(str As String, prefix As String) As Boolean
startsWith = Left(str, Len(prefix)) = prefix
End Function
Oder, wenn Sie den Offset-Parameter verfügbar haben möchten, mit 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
Right()stattdessen einfach : Right(str, Len(prefix)) = prefix:-)