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

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

Разделение строки VBA на основе нескольких разделителей

Обратите внимание, что этот макрос разбивает каждую строку в столбце A на основе пробелов и дефисов и отображает отдельные текстовые элементы каждой строки в столбцах B, C и D.

Примечание № 1. В этом примере мы разделяем строки на основе дефисов и пробелов, но вы можете разделить строки на основе любых разделителей, указав их в функциях «Заменить » и «Разделить» .

Примечание №2 . Полную документацию по функции VBA Split можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:

VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку
VBA: как подсчитать ячейки с определенным текстом

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

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