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


Пример 8.4


Public Function WildReplace(ByVal expr As String, ByVal find As String, _

ByVal Rep As String, Optional ByVal delimiter As String = " ") As String

'Эта функция применима в том частном случае, когда строка - источник,

заданная аргументом Expr

'представляет совокупность элементов, отделяемых разделителями.

'Типичный пример - строка представляет совокупность слов, разделенных

пробелами.

'Как и обычная функция Replace эта функция производит замену вхождений

элемента (подстроки) новым значением

'Отличие от стандартной функции состоит в том, что заменяемый элемент

(подстрока) find

'задается шаблоном. В результате разные элементы могут быть заменены на

новое значение.

'Для этого частного случая WildReplace существенно расширяет стандартные

возможности Replace

'Алгоритм основан на том факте, что строка допускает разбор ее на элементы,

'а к элементам применима операция Like - сравнения с шаблоном.

Dim Words() As String, i As Long, Res As String

'Разбор строки на элементы

Words = Split(expr, delimiter)

'Сравнение элементов с шаблоном и замена в случае совпадения

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

If Words(i) Like find Then Words(i) = Rep

Next i

'Сборка строки

Res = Join(Words, delimiter)

WildReplace = Res

End Function




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