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

41

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

  • 0
    Вы знаете длину подстроки, которую хотите найти?
Теги:
string
startswith
built-in

2 ответа

75
Лучший ответ

Существует несколько способов сделать это:

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

В этом случае мы используем звездочку (*), чтобы проверить, начинается ли строка с нашей подстроки.

24

Судя по объявлению и описанию функции 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
  • 2
    Это также дает преимущество в том, что оно выполняется быстрее, чем решение armstrhb (однако его решение легче читать и кодировать).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню