Может возникнуть задача, когда нужно получить строку до первого пробела. Например, чтобы получить одно слово из ячейки Excel.
Сделать это можно несколькими путями.
С использованием функции Mid:
Function getStringBeforeSpace(inputString As String)
i = 1
Do While (Mid(inputString, i, 1) <> " ")
i = i + 1
Loop
getStringBeforeSpace = Mid(inputString, 1, i)
End Function
или с использованием inStr
Function getStringBeforeSpace(inputString As String)
getStringBeforeSpace = Mid(inputString, 1, InStr(1, inputString, " "))
End Function
Первый метод работает так: при помощи функции mid берется один i-ый символ строки и сравнивается с пробелом (по-сути мы много раз режем строку и забираем 1 символ). Как только найден пробел цикл останавливается (внутри цикла счетчик). После цикла при помощи функции mid берется подстрока из строки, которую подали в функцию с 1-го символа и столько, сколько насчитало символов до пробела, то есть i символов.
Второй метод короче, удобнее и лучше. При помощи функции inStr (которой в параметрах нужно передать символ, с которого начать искать, строку в которой искать и строку что искать) мы получаем индекс пробела. Далее так же как и в первом случае при помощи функции mid выделяем подстроку до пробела.
Примечание: нельзя подавать пустую строку, так как это приводит к зависанию приложения.