Как разделить строку на массив в VBA (3 способа)

  • Поделись Этим
Hugh West

В этой статье я покажу вам, как можно разделить строку на массив в формате VBA . Сплит является одной из наиболее важных и широко используемых функций, которые мы используем в VBA Вы научитесь разделять строку в VBA всеми возможными способами.

Функция разделения VBA (быстрый просмотр)

=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])

Скачать Рабочую тетрадь для практических занятий

Разделить строку на массив.xlsm

3 способа разделить строку на массив в 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 для разбиения строки на массив элементов. У вас есть вопросы? Не стесняйтесь, задавайте их нам.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.