Предполагается, что исходная строка состоит из элементов (подстрок), разделенных специальными символами - разделителями. Функция Split возвращает одномерный массив из элементов строки. Ее синтаксис:
Split(expression[, delimiter[, limit[, compare]]])
Ее параметры:
Приведем пример, в котором сложноподчиненное предложение разделяется на простые предложения:
Public Sub SplitString() 'В этой процедуре сложное предложение разделяется на простые 'Объявляем динамический массив Dim Simple() As String, i As Byte
'Размерность массива Simple устанавливается автоматически 'в соответствии с размерностью массива, возвращаемого функцией Split Simple = Split("А это пшеница, которая в темном чулане хранится в доме, " _ & "который построил Джек", ", ") For i = LBound(Simple) To UBound(Simple) Debug.Print Simple(i) Next i
End Sub
В результате работы этой процедуры создается массив из трех элементов:
А это пшеница которая в темном чулане хранится в доме который построил Джек
Обратите внимание, для использования результатов работы функции Split создается динамический массив строк. О размерности его нет нужды заботиться, поскольку в момент присвоения ему результата выполнения Split, он заполняется элементами и у него появляется нижняя и верхняя граница. Далее с этим массивом можно работать обычным образом.
У функции Split, на наш взгляд, есть один недостаток. Хотя в роли разделителя может выступать последовательность символов, в нашем примере это пара символов "запятая, пробел", но нельзя использовать разные разделители элементов. В задачах подобного рода типичной является ситуация, когда элементы отделяются разными разделителями, возможно, окруженными пробелами. Позже мы покажем, как можно справиться с этой задачей.