Основы офисного программирования и язык VBA


Пример 8.6


Public Function WildSplit(expr As String, Optional ByVal delimiter As String = " ", _

Optional ByVal limit As Long = -1, Optional ByVal compare As

VbCompareMethod = vbBinaryCompare) As Variant

'Также, как и стандартная функция Split, эта функция расщепляет

строку - источник expr

'на элементы, используя разделители, заданные аргументом delimiter

'Отличие состоит в том, что при выделении элементов предполагается,

что разделителем

'может быть любой из символов множества delimeter, возможно, окруженный

пробелами

Dim Source As String, ResAr() As String

Dim find As String, Rep As String

Dim i As Long

Source = expr

find = VBA.Mid$(delimiter, 2)

Rep = VBA.Left$(delimiter, 1)

'Заменяем в строке все разделители на один из них

Source = CharSetReplace(Source, find, Rep)

'Теперь используем стандартную функцию Split

ResAr = Split(Source, Rep, limit, compare)

'Удаляем пробелы

For i = LBound(ResAr) To UBound(ResAr)

ResAr(i) = VBA.Trim$(ResAr(i))

Next i

WildSplit = ResAr

End Function




Начало  Назад  Вперед



Книжный магазин