копирование диапазона между листами
KolyvanOFF
Дата: Пятница, 13.02.2015, 08:39 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация:
7
±
Замечаний:
60% ±
Excel 2010
Доброго времени суток. Подскажите пожалуйста, можно ли с помощью макроса копировать "плавающий" диапазон и вставлять на другой лист в форму. Причем диапазон может быть больше чем форма. И диапазон в форме нужно увеличивать или уменьшать в зависимости от копируемого диапазона. И чтоб вставка происходила в лист с именем совпадающим с заголовком диапазона? Заранее спасибо за ответ.
Доброго времени суток. Подскажите пожалуйста, можно ли с помощью макроса копировать "плавающий" диапазон и вставлять на другой лист в форму. Причем диапазон может быть больше чем форма. И диапазон в форме нужно увеличивать или уменьшать в зависимости от копируемого диапазона. И чтоб вставка происходила в лист с именем совпадающим с заголовком диапазона? Заранее спасибо за ответ. KolyvanOFF
К сообщению приложен файл:
__.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]
вот, например [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
Яндекс.Деньги 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
С уважением, Евгений
Ответить
Сообщение 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]
У меня немного побольше получился, правда, еще с нумерацией и удалением того, что было [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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
С уважением, Евгений
Ответить
Сообщение _Boroda_, Вы сударь не перестаете меня удивлять!. Спасибо, вообще замечательно! Автор - KolyvanOFF Дата добавления - 13.02.2015 в 10:16
KolyvanOFF
Дата: Пятница, 13.02.2015, 13:26 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация:
7
±
Замечаний:
60% ±
Excel 2010
А с шагом на 4 столба что-то никак не получается замудрить!
А с шагом на 4 столба что-то никак не получается замудрить! KolyvanOFF
С уважением, Евгений
Ответить
Сообщение А с шагом на 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
С уважением, Евгений
Ответить
Сообщение _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 )
Две цифры поменять нужно Step 4 Resize(r_ - 2, 4 ) _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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.
Уточнение. А можно ли прописать макрос таким образом, что бы при копировании диапазона сдвигались вниз не только ячейки но и строки? Копирование нужно в листы с фамилиями в столбец "текущий V" с ячейки В63. KolyvanOFF
С уважением, Евгений
Ответить
Сообщение Уточнение. А можно ли прописать макрос таким образом, что бы при копировании диапазона сдвигались вниз не только ячейки но и строки? Копирование нужно в листы с фамилиями в столбец "текущий V" с ячейки В63. Автор - KolyvanOFF Дата добавления - 16.02.2015 в 12:31
KolyvanOFF
Дата: Пятница, 20.02.2015, 10:08 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация:
7
±
Замечаний:
60% ±
Excel 2010
_Boroda_, не сочтите за труд посмотреть. Пожалуйста.
_Boroda_, не сочтите за труд посмотреть. Пожалуйста. KolyvanOFF
С уважением, Евгений
Ответить
Сообщение _Boroda_, не сочтите за труд посмотреть. Пожалуйста. Автор - KolyvanOFF Дата добавления - 20.02.2015 в 10:08
_Boroda_
Дата: Пятница, 20.02.2015, 11:13 |
Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
А я уже смотрел. Еще в понедельник. Но ничего не понял. Думал, может, кто другой разберется, но, судя по шквалу ответов, ...
А я уже смотрел. Еще в понедельник. Но ничего не понял. Думал, может, кто другой разберется, но, судя по шквалу ответов, ... _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А я уже смотрел. Еще в понедельник. Но ничего не понял. Думал, может, кто другой разберется, но, судя по шквалу ответов, ... Автор - _Boroda_ Дата добавления - 20.02.2015 в 11:13