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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование данных в шаблон путем выбора определенных строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных в шаблон путем выбора определенных строк (Макросы/Sub)
Копирование данных в шаблон путем выбора определенных строк
maxexcel Дата: Пятница, 31.07.2015, 23:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый вечер! Сразу к делу! Необходимо скопировать данные из листа "исходные данные" в лист "шаблон" путем выбора строк. Все листы находятся в одной книге эксель. Т.е. выделяю строку № 3, затем зажимаю Ctrl, выделю 6 и 7 строки. Нажимаю кнопку "копировать данные в шаблон" на которую привязан макрос. Данные копируются. Нюанс в том, что данные копируются только из определенных столбцов листа "исходные данные" в другие определенные столбцы листа "шаблон", а не вся строка. Прикрепил файл " как должно быть". В нем я указал как должны копироваться данные. Применительно к файлу еще раз объясню: выделяю строку № 3, затем зажимаю Ctrl, выделю 6 и 7 строки. Нажимаю кнопку "копировать данные в шаблон" на которую привязан макрос (данной кнопки в файле нет, т.к. нет макроса). Данные копируются из листа "исходные данные" по строкам 3,6,7 из столбцов B,D,E.(т.е. ячейки B3;B6;B7;D3;D6;D7;E3;E6;E7) в лист "шаблон" в строки (здесь не обязательно чтобы именно в строки 3,6,7, нужно их упорядочить подряд, например со строки 2, т.к. первая строка это шапка шаблона) и в столбцы D,G,K (т.е. ячейки D2;D3;D4;G2;G3;G4;K2;K3;K4). Уважаемые форумчане, что можете посоветовать, как мне написать макрос.
Есть такой макрос, но он копирует только всю сроку, и невозможно выбрать их по отдельности. Мне кажется он совсем не подходит.

[vba]
Код
Application.ScreenUpdating = False
With Ëèñò1
a_ = Selection.Address
r0_ = Selection.Row
r1_ = r0_ + Selection.Rows.Count - 1
rn_ = Ëèñò2.Range("A" & Rows.Count).End(xlUp).Row + 1
.Rows(r0_ & ":" & r1_).Copy Ëèñò2.Range("A" & rn_)
.Range(a_).Select
End With
Application.ScreenUpdating = True
[/vba]
К сообщению приложен файл: 5467857.xlsx (14.8 Kb)


Сообщение отредактировал Serge_007 - Суббота, 01.08.2015, 08:11
 
Ответить
СообщениеДобрый вечер! Сразу к делу! Необходимо скопировать данные из листа "исходные данные" в лист "шаблон" путем выбора строк. Все листы находятся в одной книге эксель. Т.е. выделяю строку № 3, затем зажимаю Ctrl, выделю 6 и 7 строки. Нажимаю кнопку "копировать данные в шаблон" на которую привязан макрос. Данные копируются. Нюанс в том, что данные копируются только из определенных столбцов листа "исходные данные" в другие определенные столбцы листа "шаблон", а не вся строка. Прикрепил файл " как должно быть". В нем я указал как должны копироваться данные. Применительно к файлу еще раз объясню: выделяю строку № 3, затем зажимаю Ctrl, выделю 6 и 7 строки. Нажимаю кнопку "копировать данные в шаблон" на которую привязан макрос (данной кнопки в файле нет, т.к. нет макроса). Данные копируются из листа "исходные данные" по строкам 3,6,7 из столбцов B,D,E.(т.е. ячейки B3;B6;B7;D3;D6;D7;E3;E6;E7) в лист "шаблон" в строки (здесь не обязательно чтобы именно в строки 3,6,7, нужно их упорядочить подряд, например со строки 2, т.к. первая строка это шапка шаблона) и в столбцы D,G,K (т.е. ячейки D2;D3;D4;G2;G3;G4;K2;K3;K4). Уважаемые форумчане, что можете посоветовать, как мне написать макрос.
Есть такой макрос, но он копирует только всю сроку, и невозможно выбрать их по отдельности. Мне кажется он совсем не подходит.

[vba]
Код
Application.ScreenUpdating = False
With Ëèñò1
a_ = Selection.Address
r0_ = Selection.Row
r1_ = r0_ + Selection.Rows.Count - 1
rn_ = Ëèñò2.Range("A" & Rows.Count).End(xlUp).Row + 1
.Rows(r0_ & ":" & r1_).Copy Ëèñò2.Range("A" & rn_)
.Range(a_).Select
End With
Application.ScreenUpdating = True
[/vba]

Автор - maxexcel
Дата добавления - 31.07.2015 в 23:32
nilem Дата: Суббота, 01.08.2015, 08:02 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
maxexcel, привет
попробуйте вот так, например
[vba]
Код
Sub ttt()
Dim r As Range, lr As Long, i As Long
If TypeName(Selection) <> "Range" Then Exit Sub
With Sheets("шаблон")
      For Each r In Selection.Areas
          lr = .Cells(Rows.Count, 4).End(xlUp)(2, 1).Row
          i = r.Rows.Count
          .Cells(lr, 4).Resize(i).Value = r(1, 2).Resize(i).Value
          .Cells(lr, 7).Resize(i).Value = r(1, 4).Resize(i).Value
          .Cells(lr, 11).Resize(i).Value = r(1, 5).Resize(i).Value
      Next
End With
End Sub
[/vba]
(так выглядит текст с тегами Код. попробуйте так же отредактировать свое сообщение)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Суббота, 01.08.2015, 08:03
 
Ответить
Сообщениеmaxexcel, привет
попробуйте вот так, например
[vba]
Код
Sub ttt()
Dim r As Range, lr As Long, i As Long
If TypeName(Selection) <> "Range" Then Exit Sub
With Sheets("шаблон")
      For Each r In Selection.Areas
          lr = .Cells(Rows.Count, 4).End(xlUp)(2, 1).Row
          i = r.Rows.Count
          .Cells(lr, 4).Resize(i).Value = r(1, 2).Resize(i).Value
          .Cells(lr, 7).Resize(i).Value = r(1, 4).Resize(i).Value
          .Cells(lr, 11).Resize(i).Value = r(1, 5).Resize(i).Value
      Next
End With
End Sub
[/vba]
(так выглядит текст с тегами Код. попробуйте так же отредактировать свое сообщение)

Автор - nilem
Дата добавления - 01.08.2015 в 08:02
maxexcel Дата: Суббота, 01.08.2015, 22:40 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
nilem, Спасибо огромное, отлично работает! А что нужно отредактировать в сообщении? Я первый раз на этом форуме.
 
Ответить
Сообщениеnilem, Спасибо огромное, отлично работает! А что нужно отредактировать в сообщении? Я первый раз на этом форуме.

Автор - maxexcel
Дата добавления - 01.08.2015 в 22:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных в шаблон путем выбора определенных строк (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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