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

Вход

Регистрация

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

 

= Мир MS Excel/Массовая замена одних значений на другие - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Массовая замена одних значений на другие
deus_russia Дата: Пятница, 09.01.2015, 08:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте, Друзья!
У меня следующая проблема. Составил макрос для замены одних значений на другие. Все работает но некорректно. Меняются номера моделей изделий, которые состоят из букв и цифр. Например KS-20 необходимо заменить на FT-18. KS-200 заменить на FT-80. При этом первый пример заменяется правильно, а второй, считает что KS-200 можно заменить как KS-20 при этом добавив "0" в конце. Подскажите как заменять точные данные без допущения таких ошибок. Текст макроса использованного мной:
[vba]
Код
Sub DNtoME()
Cells.Replace What:="KS-20", Replacement:="FT-18", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="KS-200", Replacement:="FT-80", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
[/vba]
Заранее спасибо!
[moder]Оформляйте коды тегами (кнопка #)[/moder]
 
Ответить
СообщениеЗдравствуйте, Друзья!
У меня следующая проблема. Составил макрос для замены одних значений на другие. Все работает но некорректно. Меняются номера моделей изделий, которые состоят из букв и цифр. Например KS-20 необходимо заменить на FT-18. KS-200 заменить на FT-80. При этом первый пример заменяется правильно, а второй, считает что KS-200 можно заменить как KS-20 при этом добавив "0" в конце. Подскажите как заменять точные данные без допущения таких ошибок. Текст макроса использованного мной:
[vba]
Код
Sub DNtoME()
Cells.Replace What:="KS-20", Replacement:="FT-18", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="KS-200", Replacement:="FT-80", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
[/vba]
Заранее спасибо!
[moder]Оформляйте коды тегами (кнопка #)[/moder]

Автор - deus_russia
Дата добавления - 09.01.2015 в 08:49
AlexM Дата: Пятница, 09.01.2015, 09:31 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Нужен пример с файлом, как рекомендовано в правилах форума.
Если без файла, то пробуйте добавить пробелы.
"KS-20 " -> "FT-18 " и "KS-200 " -> "FT-80 "
Вопросы по VBA в другом разделе форума.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 09.01.2015, 09:34
 
Ответить
СообщениеНужен пример с файлом, как рекомендовано в правилах форума.
Если без файла, то пробуйте добавить пробелы.
"KS-20 " -> "FT-18 " и "KS-200 " -> "FT-80 "
Вопросы по VBA в другом разделе форума.

Автор - AlexM
Дата добавления - 09.01.2015 в 09:31
deus_russia Дата: Пятница, 09.01.2015, 09:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо за совет. После добавления пробела, данные перестают меняться. Файл приложил.
К сообщению приложен файл: _10-1.xls (36.5 Kb)
 
Ответить
СообщениеСпасибо за совет. После добавления пробела, данные перестают меняться. Файл приложил.

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:38
deus_russia Дата: Пятница, 09.01.2015, 09:39 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Забыл добавить. У меня Excel 2013
 
Ответить
СообщениеЗабыл добавить. У меня Excel 2013

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:39
gling Дата: Пятница, 09.01.2015, 09:41 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2643
Репутация: 739 ±
Замечаний: 0% ±

2010
Здравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть [vba]
Код
Cells.Replace What:="KS-20", Replacement:="FT-18"
[/vba]остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.


ЯД-41001506838083

Сообщение отредактировал gling - Пятница, 09.01.2015, 09:43
 
Ответить
СообщениеЗдравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть [vba]
Код
Cells.Replace What:="KS-20", Replacement:="FT-18"
[/vba]остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.

Автор - gling
Дата добавления - 09.01.2015 в 09:41
deus_russia Дата: Пятница, 09.01.2015, 09:44 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть
Cells.Replace What:="KS-20", Replacement:="FT-18"
остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.

Ctrl-H не подходит. Замен слишком много и делать их приходится постоянно. Насчет макроса, я не специалист. Текст макроса нашел на сайте и решил попробовать сам написать. Получилось, что сам макрос работает но не совсем так как хотелось бы.


Сообщение отредактировал deus_russia - Пятница, 09.01.2015, 09:46
 
Ответить
Сообщение
Здравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть
Cells.Replace What:="KS-20", Replacement:="FT-18"
остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.

Ctrl-H не подходит. Замен слишком много и делать их приходится постоянно. Насчет макроса, я не специалист. Текст макроса нашел на сайте и решил попробовать сам написать. Получилось, что сам макрос работает но не совсем так как хотелось бы.

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:44
Pelena Дата: Пятница, 09.01.2015, 09:45 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19525
Репутация: 4634 ±
Замечаний: ±

Excel 365 & Mac Excel
deus_russia, попробуйте поменять местами: сначала замените KS-200, а потом KS-20.
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеdeus_russia, попробуйте поменять местами: сначала замените KS-200, а потом KS-20.
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole

Автор - Pelena
Дата добавления - 09.01.2015 в 09:45
AlexM Дата: Пятница, 09.01.2015, 09:48 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Замен слишком много и делать их приходится постоянно
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 09.01.2015, 09:49
 
Ответить
Сообщение
Замен слишком много и делать их приходится постоянно
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А

Автор - AlexM
Дата добавления - 09.01.2015 в 09:48
deus_russia Дата: Пятница, 09.01.2015, 09:50 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, да такой способ работает. Но мне в будущем, возможно, нужно будет делать замену следующую: "KS-20"->"KS-20 (FT-18)". А при такой замене, у меня снова может возникнуть проблема при замене, скажем "KS-200"->"KS-200 (FT-80)" так как при повторной замене двухзначных значений после букв, будут меняться и уже замененные данные.
 
Ответить
СообщениеPelena, да такой способ работает. Но мне в будущем, возможно, нужно будет делать замену следующую: "KS-20"->"KS-20 (FT-18)". А при такой замене, у меня снова может возникнуть проблема при замене, скажем "KS-200"->"KS-200 (FT-80)" так как при повторной замене двухзначных значений после букв, будут меняться и уже замененные данные.

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:50
deus_russia Дата: Пятница, 09.01.2015, 09:52 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole

я не силен в этом. Можете пример привести, как правильно написать? Спасибо.
 
Ответить
Сообщение
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole

я не силен в этом. Можете пример привести, как правильно написать? Спасибо.

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:52
deus_russia Дата: Пятница, 09.01.2015, 09:53 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А

Не подскажите на небольшом примере, как это правильно сделать?
 
Ответить
Сообщение
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А

Не подскажите на небольшом примере, как это правильно сделать?

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:53
AlexM Дата: Пятница, 09.01.2015, 09:55 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Пример в файле.
К сообщению приложен файл: _10-1_new.xls (40.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПример в файле.

Автор - AlexM
Дата добавления - 09.01.2015 в 09:55
Pelena Дата: Пятница, 09.01.2015, 09:55 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19525
Репутация: 4634 ±
Замечаний: ±

Excel 365 & Mac Excel
В вашем макросе замените LookAt:=xlPart на LookAt:=xlWhole


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВ вашем макросе замените LookAt:=xlPart на LookAt:=xlWhole

Автор - Pelena
Дата добавления - 09.01.2015 в 09:55
deus_russia Дата: Пятница, 09.01.2015, 09:59 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole

Разобрался! Кажется, Ваш способ сработал. Спасибо большое Вам и всем кто мне отвечал.
 
Ответить
Сообщение
А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole

Разобрался! Кажется, Ваш способ сработал. Спасибо большое Вам и всем кто мне отвечал.

Автор - deus_russia
Дата добавления - 09.01.2015 в 09:59
Gelandewagen Дата: Пятница, 09.01.2015, 17:30 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Товарищи! Помогите! Где я сделал ошибку?

=ИНДЕКС(M1:M2803;ПОИСКПОЗ("*E2*";M1:M2436;0);0)

Нужно из массива достать ту ячейку, в которой есть значение ячейки E2. В ячейке, которую нужно найти, есть не только значение из E2.
Спасибо!
[moder]Ваш вопрос не относится к данной теме. Создайте свою[/moder]
 
Ответить
СообщениеТоварищи! Помогите! Где я сделал ошибку?

=ИНДЕКС(M1:M2803;ПОИСКПОЗ("*E2*";M1:M2436;0);0)

Нужно из массива достать ту ячейку, в которой есть значение ячейки E2. В ячейке, которую нужно найти, есть не только значение из E2.
Спасибо!
[moder]Ваш вопрос не относится к данной теме. Создайте свою[/moder]

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

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