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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

VBA разбивает строку на массив

Обратите внимание, что столбцы 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: как подсчитать ячейки с определенным текстом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *