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