Здравствуйте, Друзья! У меня следующая проблема. Составил макрос для замены одних значений на другие. Все работает но некорректно. Меняются номера моделей изделий, которые состоят из букв и цифр. Например 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
Нужен пример с файлом, как рекомендовано в правилах форума. Если без файла, то пробуйте добавить пробелы. "KS-20 " -> "FT-18 " и "KS-200 " -> "FT-80 " Вопросы по VBA в другом разделе форума.
Нужен пример с файлом, как рекомендовано в правилах форума. Если без файла, то пробуйте добавить пробелы. "KS-20 " -> "FT-18 " и "KS-200 " -> "FT-80 " Вопросы по VBA в другом разделе форума.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Пятница, 09.01.2015, 09:34
Здравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть Cells.Replace What:="KS-20", Replacement:="FT-18" остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.
Ctrl-H не подходит. Замен слишком много и делать их приходится постоянно. Насчет макроса, я не специалист. Текст макроса нашел на сайте и решил попробовать сам написать. Получилось, что сам макрос работает но не совсем так как хотелось бы.
Здравствуйте. А просто Ctrl+H нельзя, обязательно макрос писать? Вообще то нужна только эта часть Cells.Replace What:="KS-20", Replacement:="FT-18" остальное не к чему. И что добавляется, что то, хотелось бы увидеть. Про 2013 не знаю, у меня 2010.
Ctrl-H не подходит. Замен слишком много и делать их приходится постоянно. Насчет макроса, я не специалист. Текст макроса нашел на сайте и решил попробовать сам написать. Получилось, что сам макрос работает но не совсем так как хотелось бы.deus_russia
Сообщение отредактировал deus_russia - Пятница, 09.01.2015, 09:46
deus_russia, попробуйте поменять местами: сначала замените KS-200, а потом KS-20. А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWhole
deus_russia, попробуйте поменять местами: сначала замените KS-200, а потом KS-20. А ещё в методе Replace есть параметр LookAt, который позволяет задать поиск слова целиком xlWholePelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Замен слишком много и делать их приходится постоянно
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А
Замен слишком много и делать их приходится постоянно
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец АAlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Пятница, 09.01.2015, 09:49
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
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А
Не подскажите на небольшом примере, как это правильно сделать?
Нужно в файле иметь таблицу замен. Проще менять таблицу, чем макрос. При таблице можно и формулами сделать столбец с замененными данными и его значения переставить в столбец А
Не подскажите на небольшом примере, как это правильно сделать?deus_russia
Нужно из массива достать ту ячейку, в которой есть значение ячейки E2. В ячейке, которую нужно найти, есть не только значение из E2. Спасибо! [moder]Ваш вопрос не относится к данной теме. Создайте свою[/moder]
Товарищи! Помогите! Где я сделал ошибку?
=ИНДЕКС(M1:M2803;ПОИСКПОЗ("*E2*";M1:M2436;0);0)
Нужно из массива достать ту ячейку, в которой есть значение ячейки E2. В ячейке, которую нужно найти, есть не только значение из E2. Спасибо! [moder]Ваш вопрос не относится к данной теме. Создайте свою[/moder]Gelandewagen