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