Vba: как разделить строку на основе нескольких разделителей
Вы можете использовать следующий базовый синтаксис для разделения строки на основе нескольких разделителей в VBA:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
В этом конкретном примере каждая строка в диапазоне A2:A7 разделяется на основе дефисов или пробелов в каждой строке, а затем присваивается результирующие элементы каждой строки соседним ячейкам в столбцах B, C и D.
Примечание . Этот макрос сначала заменяет каждый дефис пробелом, а затем разбивает каждую строку в зависимости от того, где находятся пробелы.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Разделение строки на основе нескольких разделителей в VBA.
Предположим, у нас есть следующий список имен в Excel:
Предположим, мы хотим разделить каждое имя на основе дефисов или пробелов, а затем назначить полученные элементы каждой строки новым ячейкам.
Для этого мы можем создать следующий макрос:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что этот макрос разбивает каждую строку в столбце A на основе пробелов и дефисов и отображает отдельные текстовые элементы каждой строки в столбцах B, C и D.
Примечание № 1. В этом примере мы разделяем строки на основе дефисов и пробелов, но вы можете разделить строки на основе любых разделителей, указав их в функциях «Заменить » и «Разделить» .
Примечание №2 . Полную документацию по функции VBA Split можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:
VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку
VBA: как подсчитать ячейки с определенным текстом