Использование функции Split
Элегантный подход заключается в использовании первого токена функции Split
:
Пример кода, извлекаемый изячейки от А1 до А2
Option Explicit
Sub KeepCity()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheet") ' << Change to your sheet name
ws.[A2] = Split(ws.[A1], " ")(0)
End Sub
Альтернативный синтаксис
Вместо сокращений ячеек [A2]
или [A1]
также можно использовать:
ws.Range("A2").Value = Split(ws.Range("A1").Value, " ")(0)
Примечание
Полученный разделенный 1-мерный массив основан на нуле, поэтому вы получаете первую часть (или токен) исходной строки через индекс (0)
.
Если вы ищете вторую часть, я рекомендую добавить дополнительное значение разделителя ("") к исходной строке, например, s
: MsgBox split(s & " "," ")(1)
.Таким образом вы избежите ошибки с номером 9 "Subscript out of range"
, если между ними вообще нет разделителя, то есть вообще нет второй части.