Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Замена числового значения при наличии определенного слова стоящего перед ним в ячейке
 
Доброго времени суток!

Нужен макрос, который при наличии в ячейке слова "более ", и последующего за ним числового значения меняло это числовое значение на большее, и при этом удаляло бы слово "более ". Но только число должно меняться по последней цифре. Например:  
"более 100"  => "101"
"более 0,001 => "0,002"
То есть слово "более" + пробел + числовое значение заменяется на числовое значение +1 к последней цифре
В ячейках кроме этого может присутствовать какой-угодно текст.
Сейчас это работает следующим образом: создал макрос, для которого прописал условия замены типа:
Код
Selection.Replace What:="более 10", Replacement:="11", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 ReplaceFormat:=False
Selection.Replace What:="более 11", Replacement:="12", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 ReplaceFormat:=False
Selection.Replace What:="более 12", Replacement:="13", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 ReplaceFormat:=False
...
и так до 99. Работает в selection хорошо, однако код получается слишком большой, и кроме того таким образом можно прописать условия замены только для двухзначных чисел. Для трехзначных чисел придется делать уже  999 условий и т.п. Нужно чтобы единичка прибавлялась именно к последней цифре, вне зависимости от значности чисел. Как можно оптимизировать массовую замену, или есть какой-то другой способ это сделать?
 
UDF в 4-й колонке
Скрытый текст
[CODE][/CODE]
Изменено: Ігор Гончаренко - 17 Фев 2017 19:08:55
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Спасибо огромное! То, что нужно
Страницы: 1
Читают тему (гостей: 1)