Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Помогите с макросом замены, пожалуйста

Автор Kosha, 08.05.2012, 02:11

« назад - далее »

Kosha

Есть макрос, который делает следующее:
В буфере обмена есть текст (00005KM2), он пишется в ячейку A2, а далее должен в ячейках B2:E2 заменить
00005KM2 себя, т.е. на (00005KM2). В данном случае все работает. Но если в буфере обмена другой текст, то данный макрос не работает.
Мне надо чтобы было Replacement:=(текст из буфера или из ячейки A2, лучше из ячейки, а еще лучше оба варианта на будущее)

Range("A2").Select
ActiveSheet.PasteSpecial Format:="Текст", Link:=False, DisplayAsIcon:= _
     False
Range("B2:E2").Select
Selection.Replace What:="00001KM2", Replacement:="00005KM2", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

Wasilic

Честно говоря, запутался.
Но если,
ЦитироватьВ буфере обмена есть текст (00005KM2), он пишется в ячейку A2
То почему в ячейки B2:E2 не вставить его простым копированием
Range("A2").Copy
Range("B2:E2").Select
ActiveSheet.Paste
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Kosha

#2
Цитата: Wasilic от 08.05.2012, 10:08
Честно говоря, запутался.
Но если,
ЦитироватьВ буфере обмена есть текст (00005KM2), он пишется в ячейку A2
То почему в ячейки B2:E2 не вставить его простым копированием
Range("A2").Copy
Range("B2:E2").Select
ActiveSheet.Paste

Потому что Эти ячкейки содержат много текста (='G:\Страховая таблица\[00000KM2.xlsm]Текучка'!$B$5), а изменить надо только часть.
Простите, что сразу не сказал
Т.е. требуется в строчке

Selection.Replace What:="00001KM2", Replacement:="00005KM2", LookAt:= _

заменить "00005KM2" на значение в ячейке A2 или на значение в буфере

Kosha

Неужели никто не поможет? Очень прошу.
Или это вообще реализовать невозможно?

Wasilic

Цитата: Kosha от 08.05.2012, 12:41
Т.е. требуется в строчке
Selection.Replace What:="00001KM2", Replacement:="00005KM2", LookAt:= _
заменить "00005KM2" на значение в ячейке A2
Тогда наверное так
Selection.Replace What:="00001KM2", Replacement:= Range("A2"), LookAt:= _
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.