Добрый день! У меня есть текст, где есть всякий мусор из левых символов Обычно я их чищу Replace'ом. В тексте встречаются куча всяких пробелом, двоеточий, цифр. Но как сделать красиво, что бы не плодить десятки Replace'ов, а сделать все компактно? В примере у меня [vba]
[/vba] Как указать компактно, что если находится 1, 2 и так далее, что всех их нужно поменять на ничего, то есть удалить?
Добрый день! У меня есть текст, где есть всякий мусор из левых символов Обычно я их чищу Replace'ом. В тексте встречаются куча всяких пробелом, двоеточий, цифр. Но как сделать красиво, что бы не плодить десятки Replace'ов, а сделать все компактно? В примере у меня [vba]
For i = LBound(m) To UBound(m): Str = Replace(Str, m(i), ""): Next i
[/vba] Если рассмотреть в примере макроса то: [vba]
Код
Sub Замена() Dim m, i%, Str$ Str = "123456789" m = Array("1", "2", "3", "4") For i = LBound(m) To UBound(m): Str = Replace(Str, m(i), ""): Next i MsgBox Str End Sub
[/vba]
Можно ещё вот такой вариант рассмотреть: [vba]
Код
For i = LBound(m) To UBound(m): Str = Replace(Str, m(i), ""): Next i
[/vba] Если рассмотреть в примере макроса то: [vba]
Код
Sub Замена() Dim m, i%, Str$ Str = "123456789" m = Array("1", "2", "3", "4") For i = LBound(m) To UBound(m): Str = Replace(Str, m(i), ""): Next i MsgBox Str End Sub
Такой вариант (специально не стал даже думать над усложнением паттерна, чтобы голову Вам не морочить) [vba]
Код
Sub rr() With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = ("[^а-яё\s]") Range("E4") = StrConv(Application.Trim(.Replace(Range("E3"), "")), 3) End With End Sub
[/vba]
Такой вариант (специально не стал даже думать над усложнением паттерна, чтобы голову Вам не морочить) [vba]
Код
Sub rr() With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = ("[^а-яё\s]") Range("E4") = StrConv(Application.Trim(.Replace(Range("E3"), "")), 3) End With End Sub