В VBA, какой самый прямой способ проверить, начинается ли строка с подстроки? Java имеет startsWith
. Существует ли эквивалент VBA?
VBA: проверить, начинается ли строка со строки?
Ответ 1
Существует несколько способов сделать это:
InStr
Вы можете использовать встроенную функцию InStr
, чтобы проверить, содержит ли String подстроку. InStr
либо вернет индекс первого совпадения, либо 0. Таким образом, вы можете проверить, начинается ли строка с подстроки, выполняя следующие действия:
If InStr(1, "Hello World", "Hello W") = 1 Then
MsgBox "Yep, this string begins with Hello W!"
End If
Если InStr
возвращает 1
, то строка ( "Hello World" ) начинается с подстроки ( "Hello W" ).
Как
Вы также можете использовать оператор сравнения like
вместе с некоторым базовым сопоставлением шаблонов:
If "Hello World" Like "Hello W*" Then
MsgBox "Yep, this string begins with Hello W!"
End If
В этом случае мы используем звездочку (*), чтобы проверить, начинается ли строка с нашей подстроки.
Ответ 2
Судя по объявлению и описанию функции startsWith
Java, "самый прямой путь" для его реализации в VBA будет либо с Left
Public Function startsWith(str As String, prefix As String) As Boolean
startsWith = Left(str, Len(prefix)) = prefix
End Function
Или, если вы хотите иметь доступный параметр смещения, 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