Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

replace работает, replacement нет

88K
02 апреля 2014 года
hitakiry
2 / / 02.04.2014
Ввожу код

Range(Cells(5, 2), Cells(10, 2)).Replace What:=";12", Replacement:=";2"

в ячейках ничего не меняет, но если нажать ctrl+H видно что в графе "Найти" стоит ;12, а во второй пусто.
В чем может быть причина не подскажете.
275
02 апреля 2014 года
pashulka
985 / / 19.09.2004
Одной из причин может быть наличие "мусора", оставшегося от предыдущего поиска и/или замены, т.е., если в указанном диапазоне "B5:B10" будет наличествовать, например, 5;12;17 и будет установлена опция Ячейка целиком, то замены, разумеется, не произойдёт.

Бороться же с таким безобразием - можно явно указав все необходимые параметры, т.е.

 
Код:
Range(Cells(5, 2), Cells(10, 2)).Replace What:=";12", Replacement:=";2", LookAt:=xlPart
или

 
Код:
Range("B5:B10").Replace ";12", ";2", xlPart
275
02 апреля 2014 года
pashulka
985 / / 19.09.2004
Ещё один вариант, при котором Ваш вариант не будет работать, это попытка замены части текста в формуле, например =ЕСЛИ(ЕПУСТО(A1);12;0)

В этом случае - нужно просто вспомнить, что формулы хранятся в локально-независимом формате, где разделитель аргументов, всегда запятая (,) то бишь :

 
Код:
Range(Cells(5, 2), Cells(10, 2)).Replace What:=",12", Replacement:=",2", LookAt:=xlPart
 
Код:
Range("B5:B10").Replace ",12", ",2", xlPart
88K
03 апреля 2014 года
hitakiry
2 / / 02.04.2014
Второй вариант то что нужно.
Спасибо Вам большое!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог