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