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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос подмены значений для значений в столбце на первое зна - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос подмены значений для значений в столбце на первое зна (Макросы/Sub)
Макрос подмены значений для значений в столбце на первое зна
denver2109 Дата: Четверг, 30.10.2014, 14:15 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем привет. Не могли бы помочь. Суть вопроса следующая:
есть ексель 2013
есть список станций метро - каждая станция в первой ячейке каждого столбца: A1 - Автозаводска, B1 - Сокольники и т.д.
В ячейках A2:A20, B2:B20 и т.д. шаблонный список фраз.
Нужно подменить одно(одинаковое) слово из каждой ячейки списка на значение первой ячейки столбца, т.е.
В результате подмены мы должны получить:
Вместо шаблонного списка фраз в ячейках A2-A20, B2:B20 и т.д. уже список фраз с названием конкретной станции метро, которая указана в ячейке A1, B2 и т.д.

Демо версия того что ц меня получилось (аэропорт в коде - это станция метро):
[vba]
Код
Sub Макрос1()

Range("A1:FH1").Select
Selection.Copy
Range("A2:A18").Select
Selection.Replace What:="аэропорт", Replacement:=Range("A1:FH1"), LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("B2:B18").Select
Selection.Replace What:="аэропорт", Replacement:=Range("B1:FH1"), LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
[/vba]
Недостаток в том что столбцов много очень, и для каждого копировать код бредово - можно ли как то оптимизировать этот для работы, либо вообще есть какие то аналоги?
по форуму поискал не нашел что то похожего.
Спасибо.
 
Ответить
СообщениеВсем привет. Не могли бы помочь. Суть вопроса следующая:
есть ексель 2013
есть список станций метро - каждая станция в первой ячейке каждого столбца: A1 - Автозаводска, B1 - Сокольники и т.д.
В ячейках A2:A20, B2:B20 и т.д. шаблонный список фраз.
Нужно подменить одно(одинаковое) слово из каждой ячейки списка на значение первой ячейки столбца, т.е.
В результате подмены мы должны получить:
Вместо шаблонного списка фраз в ячейках A2-A20, B2:B20 и т.д. уже список фраз с названием конкретной станции метро, которая указана в ячейке A1, B2 и т.д.

Демо версия того что ц меня получилось (аэропорт в коде - это станция метро):
[vba]
Код
Sub Макрос1()

Range("A1:FH1").Select
Selection.Copy
Range("A2:A18").Select
Selection.Replace What:="аэропорт", Replacement:=Range("A1:FH1"), LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("B2:B18").Select
Selection.Replace What:="аэропорт", Replacement:=Range("B1:FH1"), LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
[/vba]
Недостаток в том что столбцов много очень, и для каждого копировать код бредово - можно ли как то оптимизировать этот для работы, либо вообще есть какие то аналоги?
по форуму поискал не нашел что то похожего.
Спасибо.

Автор - denver2109
Дата добавления - 30.10.2014 в 14:15
Rioran Дата: Четверг, 30.10.2014, 15:07 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
denver2109, здравствуйте.

Попробуйте этот код. Он перебирает столбцы от первого до тех пор, пока не встретит пустую ячейку в первой строке.

Замените "Что_Меняем" в коде на Ваше слово (тоже в кавычках), которое везде одинаковое.

Сработало?

[vba]
Код
Sub Rio_Exchange()

Dim X As Long
X = 1

Do While Cells(1, X).Value <> ""
      Range(Cells(2, X), Cells(20, X)).Replace What:="Что_Меняем", Replacement:=Cells(1, X).Value, LookAt:=xlPart
      X = X + 1
Loop

End Sub
[/vba]
Чтобы Ваш код выглядел также классно как и мой - можно зайти в редактирование сообщения, выделить только VBA-код и нажать на кнопку # справа на панели кнопок редактирования. Этого требуют правила форума. Как и прикладывание файлов-примеров, но если мой вариант Вас устраивает - то с этой частью можно подождать до следующего вопроса.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 30.10.2014, 15:12
 
Ответить
Сообщениеdenver2109, здравствуйте.

Попробуйте этот код. Он перебирает столбцы от первого до тех пор, пока не встретит пустую ячейку в первой строке.

Замените "Что_Меняем" в коде на Ваше слово (тоже в кавычках), которое везде одинаковое.

Сработало?

[vba]
Код
Sub Rio_Exchange()

Dim X As Long
X = 1

Do While Cells(1, X).Value <> ""
      Range(Cells(2, X), Cells(20, X)).Replace What:="Что_Меняем", Replacement:=Cells(1, X).Value, LookAt:=xlPart
      X = X + 1
Loop

End Sub
[/vba]
Чтобы Ваш код выглядел также классно как и мой - можно зайти в редактирование сообщения, выделить только VBA-код и нажать на кнопку # справа на панели кнопок редактирования. Этого требуют правила форума. Как и прикладывание файлов-примеров, но если мой вариант Вас устраивает - то с этой частью можно подождать до следующего вопроса.

Автор - Rioran
Дата добавления - 30.10.2014 в 15:07
RAN Дата: Четверг, 30.10.2014, 15:19 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Роман
[vba]
Код
d1 = Cells(1, 1).End(xlToRight).Column
[/vba]
нет? :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеРоман
[vba]
Код
d1 = Cells(1, 1).End(xlToRight).Column
[/vba]
нет? :)

Автор - RAN
Дата добавления - 30.10.2014 в 15:19
denver2109 Дата: Четверг, 30.10.2014, 15:30 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Rioran, спасибо, то что надо!!! hands
 
Ответить
СообщениеRioran, спасибо, то что надо!!! hands

Автор - denver2109
Дата добавления - 30.10.2014 в 15:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос подмены значений для значений в столбце на первое зна (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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