Оглавление
В этой статье я покажу вам, как можно разделить строку на массив в формате VBA . Сплит является одной из наиболее важных и широко используемых функций, которые мы используем в VBA Вы научитесь разделять строку в VBA всеми возможными способами.
Функция разделения VBA (быстрый просмотр)
=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])
Скачать Рабочую тетрадь для практических занятий
Разделить строку на массив.xlsm3 способа разделить строку на массив в VBA
Давайте возьмем в руки струну "Мы подали документы на визу США, Канады, Австралии и Франции". .
Я покажу вам, как вы можете разделить эту строку на массив всеми возможными способами, используя Функция разделения из VBA .
1. использование любого разделителя для разделения строки на массив в VBA
Вы можете использовать любую строку в качестве разделителя, чтобы разделить строку на массив в VBA .
Это может быть пробел (" ") , a запятая (",") , a точка с запятой (":") один символ, строка символов или что угодно.
⧭ Пример 1:
Давайте разделим строку с помощью запятая в качестве разделителя.
Строка кода будет выглядеть следующим образом:
Arr = Split(Text, ",")
Полный Код VBA будет:
⧭ Код VBA:
Sub Split_String() Text = "Мы подали документы на визу США, Канады, Австралии и Франции." Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Выход:
Он разделит строку на массив, состоящий из {"Мы подали документы на визу США", "Канады", "Австралии", "Франции"}.
⧭ Пример 2:
Вы также можете использовать пробел (" ") в качестве разделителя.
Строка кода будет выглядеть следующим образом:
Arr = Split(Text, " ")
Полный Код VBA будет:
⧭ Код VBA:
Sub Split_String() Text = "Мы подали документы на визу США, Канады, Австралии и Франции." Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Выход:
Он разделит строку на массив, состоящий из { "Мы", "подали", "для", "the", "виза", "из", "США", "Канада", "Австралия", "Франция" }.
⧭ Что нужно помнить:
- Разделителем по умолчанию является пробел (" ") .
- То есть, если вы не вставите никакой разделитель, он будет использовать пространство в качестве разделителя.
Читать далее: Разделение строки по символам в Excel (6 подходящих способов)
Похожие чтения:
- Разделение текста на несколько ячеек в Excel
- VBA для получения уникальных значений из столбца в массив в Excel (3 критерия)
- Excel VBA: Как фильтровать по нескольким критериям в массиве (7 способов)
2. Разделить строку на массив с произвольным количеством элементов
Вы можете разделить строку на массив с любым количеством элементов по вашему желанию.
Вставьте количество элементов в качестве 3-й аргумент Функция разделения .
⧭ Пример:
Давайте разделим строку на первую 3 предметы с пространство в качестве разделителя.
Строка кода будет выглядеть следующим образом:
Arr = Split(Text, " ", 3)
И код VBA будет:
⧭ Код VBA:
Sub Split_String() Text = "Мы подали документы на визу США, Канады, Австралии и Франции." Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Выход:
Он разделит строку на массив, состоящий из первых 3 элементы, разделенные разделителем пространство .
⧭ Что нужно помнить:
- Аргументом по умолчанию является -1 .
- Это означает, что если вы не введете аргумент, он разделит строку на максимально возможное количество раз.
Читать далее: Как разделить строку по длине в Excel (8 способов)
3. использование чувствительного к регистру и нечувствительного разделителя для разделения строки и массива в VBA
Сайт Функция разделения предлагает вам использовать как с учетом регистра и без учета регистра разделитель.
Для без учета регистра разделитель, вставьте 4-й аргумент как 1.
И для без учета регистра разделитель, вставьте 4-й аргумент как 0 .
⧭ Пример 1: Разделитель, нечувствительный к регистру
В данной строке рассмотрим текст "ЗА" в качестве разделителя и 2 как общее количество элементов массива.
Теперь, для без учета регистра случае, строка кода будет такой:
Arr = Split(Text, "FOR ", 3,1)
И полный код VBA будет:
⧭ Код VBA:
Sub Split_String() Text = "Мы подали документы на визу США, Канады, Австралии и Франции." Arr = Split(Text, "FOR", 2, 1) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Выход:
Поскольку разделителем является без учета регистра здесь "ЗА" будет работать как "для" и разделит строку на массив из двух элементов.
⧭ Пример 2: Разделитель с учетом регистра
Опять же, для с учетом регистра случае, строка кода будет такой:
Arr = Split(Text, "FOR ", 3,0)
И полный код VBA будет:
⧭ Код VBA:
Sub Split_String() Text = "Мы подали документы на визу США, Канады, Австралии и Франции." Arr = Split(Text, "FOR", 2, 0) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Выход:
Поскольку разделителем является с учетом регистра здесь "ЗА" не будет, как "для" и не будет разбивать строку на массив из двух элементов.
Читать далее: Excel VBA: удаление дубликатов из массива (2 примера)
⧭ Что нужно помнить:
- Значение аргумента по умолчанию 0 .
- То есть, если вы не поставите значение 4-й аргумент, он будет работать для с учетом регистра матч.
Заключение
Поэтому, используя эти методы, вы можете использовать Функция разделения из VBA для разбиения строки на массив элементов. У вас есть вопросы? Не стесняйтесь, задавайте их нам.