т.е в каждой строке только 1 ячейка содержащая подобный текст разделенных символом ~ (слов может быть как 10 так и 40)
Нужно: Через функцию (бейсик хромает на все 4 лапы) осуществить замену любого содержимого находящегося между символом ~ и приведение данного в ячейке к виду: 1 строка: param~param~param~param 2 строка param~param 3 param~param~param~param и т.д.
по сути заменить все что между спец символом на слово param (соответственно не должно быть ни пробелов, ни переносов)
строка: текст1~текст2~текст3~текст4 строка: param~param~param~param Не соответствует описанной задаче: 1. почему Текст1 заменён? ведь он не между символом?! 2. если Текст1 заменён, то почему не заменена строка:? ведь она в таком же положении как и Текст1 По вашему описаню я понял, что надо было заменить лишь Текст2 и Текст3. Они, по крайней мере, между символами ~
Александр Моторин написал: 1. почему Текст1 заменён? ведь он не между символом?!
да, не усмотрел, добавлю символ и приведу к виду ~text1~text2~ если так будет проще. заменить нужно полностью все содержимое между символами ~ и заменить именно на одно слово param
Public Function fnc(strk As String) As String
For i = 1 To Len(strk) - Len(Replace(strk, "~", "")) - 1
k = k & "~param"
Next
fnc = k & "~"
End Function
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "[^~]+~": .Global = True
uuu = Mid(.Replace(t, "~param"), 2) & "~"
End With
End Function
Function Мяу(Strc$)
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "~(\s|\S)+?~"
If .test(Strc) Then
Мяу = Replace(.Replace(Replace(Strc, "~", "~~"), "~param~"), "~~", "~")
End If
End With
End Function