Подтвердить что ты не робот

VBA: проверить, начинается ли строка со строки?

В VBA, какой самый прямой способ проверить, начинается ли строка с подстроки? Java имеет startsWith. Существует ли эквивалент VBA?

4b9b3361

Ответ 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