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

Вход

Регистрация

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

 

= Мир MS Excel/копирование диапазона между листами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » копирование диапазона между листами (Макросы/Sub)
копирование диапазона между листами
KolyvanOFF Дата: Пятница, 13.02.2015, 08:39 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
Доброго времени суток.
Подскажите пожалуйста, можно ли с помощью макроса копировать "плавающий" диапазон и вставлять на другой лист в форму. Причем диапазон может быть больше чем форма. И диапазон в форме нужно увеличивать или уменьшать в зависимости от копируемого диапазона. И чтоб вставка происходила в лист с именем совпадающим с заголовком диапазона?

Заранее спасибо за ответ.
К сообщению приложен файл: __.xlsm (10.3 Kb)


С уважением, Евгений
 
Ответить
СообщениеДоброго времени суток.
Подскажите пожалуйста, можно ли с помощью макроса копировать "плавающий" диапазон и вставлять на другой лист в форму. Причем диапазон может быть больше чем форма. И диапазон в форме нужно увеличивать или уменьшать в зависимости от копируемого диапазона. И чтоб вставка происходила в лист с именем совпадающим с заголовком диапазона?

Заранее спасибо за ответ.

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

Excel 2013, 2016
вот, например
[vba]
Код
Sub ertert()
Dim i&
With Sheets("Источник").Range("B2").CurrentRegion
     For i = 1 To .Columns.Count Step 2
         With .Columns(i)
             .Offset(1).Resize(.SpecialCells(2).Count - 1, 2).Copy Sheets(.Cells(1).Value).Range("A3")
         End With
     Next
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениевот, например
[vba]
Код
Sub ertert()
Dim i&
With Sheets("Источник").Range("B2").CurrentRegion
     For i = 1 To .Columns.Count Step 2
         With .Columns(i)
             .Offset(1).Resize(.SpecialCells(2).Count - 1, 2).Copy Sheets(.Cells(1).Value).Range("A3")
         End With
     Next
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 13.02.2015 в 09:32
KolyvanOFF Дата: Пятница, 13.02.2015, 10:02 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
nilem, спасибо. То что нужно. Я думал там макрос будет лошадиный.


С уважением, Евгений
 
Ответить
Сообщениеnilem, спасибо. То что нужно. Я думал там макрос будет лошадиный.

Автор - KolyvanOFF
Дата добавления - 13.02.2015 в 10:02
_Boroda_ Дата: Пятница, 13.02.2015, 10:07 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня немного побольше получился, правда, еще с нумерацией и удалением того, что было
[vba]
Код
Sub tt()
     Application.ScreenUpdating = 0
     With Лист4
         c_ = .Cells(2, Columns.Count).End(xlToLeft).Column
         For i = 2 To c_ Step 2
             a_ = .Cells(2, i)
             r_ = .Cells(Rows.Count, i).End(xlUp).Row
             Sheets(a_).Rows("3:3333").Delete
             .Cells(3, i).Resize(r_ - 2, 2).Copy Sheets(a_).Range("B3")
             Sheets(a_).Range("A3").Resize(r_ - 2).FormulaR1C1 = "=SUM(R[-1]C,1)"
             Sheets(a_).Range("A3").Resize(r_ - 2) = Sheets(a_).Range("A3").Resize(r_ - 2).Value
             Sheets(a_).Range("C3").Resize(r_ - 2).Copy
             Sheets(a_).Range("A3").PasteSpecial Paste:=xlPasteFormats
             Application.CutCopyMode = False
         Next i
     End With
     Application.ScreenUpdating = 1
     MsgBox "Скопировано"
End Sub
[/vba]
К сообщению приложен файл: _448754_2.xlsm (21.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня немного побольше получился, правда, еще с нумерацией и удалением того, что было
[vba]
Код
Sub tt()
     Application.ScreenUpdating = 0
     With Лист4
         c_ = .Cells(2, Columns.Count).End(xlToLeft).Column
         For i = 2 To c_ Step 2
             a_ = .Cells(2, i)
             r_ = .Cells(Rows.Count, i).End(xlUp).Row
             Sheets(a_).Rows("3:3333").Delete
             .Cells(3, i).Resize(r_ - 2, 2).Copy Sheets(a_).Range("B3")
             Sheets(a_).Range("A3").Resize(r_ - 2).FormulaR1C1 = "=SUM(R[-1]C,1)"
             Sheets(a_).Range("A3").Resize(r_ - 2) = Sheets(a_).Range("A3").Resize(r_ - 2).Value
             Sheets(a_).Range("C3").Resize(r_ - 2).Copy
             Sheets(a_).Range("A3").PasteSpecial Paste:=xlPasteFormats
             Application.CutCopyMode = False
         Next i
     End With
     Application.ScreenUpdating = 1
     MsgBox "Скопировано"
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 13.02.2015 в 10:07
KolyvanOFF Дата: Пятница, 13.02.2015, 10:16 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
_Boroda_, Вы сударь не перестаете меня удивлять!. Спасибо, вообще замечательно!


С уважением, Евгений
 
Ответить
Сообщение_Boroda_, Вы сударь не перестаете меня удивлять!. Спасибо, вообще замечательно!

Автор - KolyvanOFF
Дата добавления - 13.02.2015 в 10:16
KolyvanOFF Дата: Пятница, 13.02.2015, 13:26 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
А с шагом на 4 столба что-то никак не получается замудрить!


С уважением, Евгений
 
Ответить
СообщениеА с шагом на 4 столба что-то никак не получается замудрить!

Автор - KolyvanOFF
Дата добавления - 13.02.2015 в 13:26
KolyvanOFF Дата: Пятница, 13.02.2015, 14:52 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
_Boroda_, в вашем макросе копируется 2 столбца. не могу приладить на копирование 4 столбцов


С уважением, Евгений
 
Ответить
Сообщение_Boroda_, в вашем макросе копируется 2 столбца. не могу приладить на копирование 4 столбцов

Автор - KolyvanOFF
Дата добавления - 13.02.2015 в 14:52
_Boroda_ Дата: Пятница, 13.02.2015, 15:03 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Две цифры поменять нужно
Step 4
Resize(r_ - 2, 4)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДве цифры поменять нужно
Step 4
Resize(r_ - 2, 4)

Автор - _Boroda_
Дата добавления - 13.02.2015 в 15:03
KolyvanOFF Дата: Пятница, 13.02.2015, 15:11 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
спасибо


С уважением, Евгений
 
Ответить
Сообщениеспасибо

Автор - KolyvanOFF
Дата добавления - 13.02.2015 в 15:11
KolyvanOFF Дата: Понедельник, 16.02.2015, 12:31 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
Уточнение. А можно ли прописать макрос таким образом, что бы при копировании диапазона сдвигались вниз не только ячейки но и строки?
Копирование нужно в листы с фамилиями в столбец "текущий V" с ячейки В63.
К сообщению приложен файл: 0699205.7z (99.7 Kb)


С уважением, Евгений
 
Ответить
СообщениеУточнение. А можно ли прописать макрос таким образом, что бы при копировании диапазона сдвигались вниз не только ячейки но и строки?
Копирование нужно в листы с фамилиями в столбец "текущий V" с ячейки В63.

Автор - KolyvanOFF
Дата добавления - 16.02.2015 в 12:31
KolyvanOFF Дата: Пятница, 20.02.2015, 10:08 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 7 ±
Замечаний: 60% ±

Excel 2010
_Boroda_, не сочтите за труд посмотреть. Пожалуйста.


С уважением, Евгений
 
Ответить
Сообщение_Boroda_, не сочтите за труд посмотреть. Пожалуйста.

Автор - KolyvanOFF
Дата добавления - 20.02.2015 в 10:08
_Boroda_ Дата: Пятница, 20.02.2015, 11:13 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А я уже смотрел. Еще в понедельник. Но ничего не понял. Думал, может, кто другой разберется, но, судя по шквалу ответов, ...


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА я уже смотрел. Еще в понедельник. Но ничего не понял. Думал, может, кто другой разберется, но, судя по шквалу ответов, ...

Автор - _Boroda_
Дата добавления - 20.02.2015 в 11:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » копирование диапазона между листами (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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