Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена/подстановка/удаление символов - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Замена/подстановка/удаление символов
AVI Дата: Воскресенье, 16.09.2018, 15:22 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
У меня есть текст, где есть всякий мусор из левых символов
Обычно я их чищу Replace'ом. В тексте встречаются куча всяких пробелом, двоеточий, цифр.
Но как сделать красиво, что бы не плодить десятки Replace'ов, а сделать все компактно?
В примере у меня
[vba]
Код
Range("E4") = StrConv(Replace(Replace(Trim(Range("E3")), "1", ""), "2", ""), 3)
[/vba]
Как указать компактно, что если находится 1, 2 и так далее, что всех их нужно поменять на ничего, то есть удалить?
К сообщению приложен файл: _Microsoft_Exce.xlsm (12.9 Kb)
 
Ответить
СообщениеДобрый день!
У меня есть текст, где есть всякий мусор из левых символов
Обычно я их чищу Replace'ом. В тексте встречаются куча всяких пробелом, двоеточий, цифр.
Но как сделать красиво, что бы не плодить десятки Replace'ов, а сделать все компактно?
В примере у меня
[vba]
Код
Range("E4") = StrConv(Replace(Replace(Trim(Range("E3")), "1", ""), "2", ""), 3)
[/vba]
Как указать компактно, что если находится 1, 2 и так далее, что всех их нужно поменять на ничего, то есть удалить?

Автор - AVI
Дата добавления - 16.09.2018 в 15:22
CAHO Дата: Воскресенье, 16.09.2018, 17:09 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 4 ±
Замечаний: 0% ±

Excel 2010
Можно ещё вот такой вариант рассмотреть:
[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]

Автор - CAHO
Дата добавления - 16.09.2018 в 17:09
_Boroda_ Дата: Воскресенье, 16.09.2018, 17:26 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Такой вариант (специально не стал даже думать над усложнением паттерна, чтобы голову Вам не морочить)
[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]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант (специально не стал даже думать над усложнением паттерна, чтобы голову Вам не морочить)
[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]

Автор - _Boroda_
Дата добавления - 16.09.2018 в 17:26
AVI Дата: Воскресенье, 16.09.2018, 17:29 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
_Boroda_,
усложнением паттерна

Эти Вы определили какие символы ОСТАВИТЬ, я так понимаю.


Сообщение отредактировал AVI - Воскресенье, 16.09.2018, 17:29
 
Ответить
Сообщение_Boroda_,
усложнением паттерна

Эти Вы определили какие символы ОСТАВИТЬ, я так понимаю.

Автор - AVI
Дата добавления - 16.09.2018 в 17:29
_Boroda_ Дата: Воскресенье, 16.09.2018, 17:41 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Да. А насчет двойных пробелов, например, морочиться не стал, а просто Екселевским СЖПРОБЕЛЫ их удалил


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДа. А насчет двойных пробелов, например, морочиться не стал, а просто Екселевским СЖПРОБЕЛЫ их удалил

Автор - _Boroda_
Дата добавления - 16.09.2018 в 17:41
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!