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