|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2014, 10:43 | #1 |
Форумчанин
Регистрация: 11.05.2009
Сообщений: 139
|
...вставить диапазон из другого листа...
Здравствуйте! задача такова - нужно определить последнюю заполненную строку и скопировать в следующую содержимое диапазона с другого листа
есть код Private Sub CommandButton1_Click() Dim nomer As Long nomer = Worksheets("данные").Range("p1") 'переменная получает количество строк для обработки For y = 2 To nomer If Worksheets("данные").Cells(10, y) = "" Then Worksheets("формы").Cells(Rows.Coun t, 1).End(xlUp).Offset(1) = Worksheets("данные").Range("ay:ny") ' определяю последнюю заполненную ячейку с первом столбце и пытаюсь вставить данные End If Next y End Sub очевидно что здесь все не так, а как надо??? не могу сообразить Последний раз редактировалось maxvip; 29.05.2014 в 11:12. |
29.05.2014, 11:44 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
все делается одной строкой кода
Код:
|
29.05.2014, 11:53 | #3 |
Форумчанин
Регистрация: 11.05.2009
Сообщений: 139
|
|
29.05.2014, 12:29 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Неудивительно
Думаете, почему я заменил в своем коде Range("ay:ny") на Range("АдресКопируемогоДиапазона") потому что не получится вставить СТОЛБЦЫ ЦЕЛИКОМ ("ay:ny") начиная с какой-то там строки листа - они не влезут по высоте вот было бы, например, Worksheets("данные").Range("a2:n500 ") - всё бы заработало перед копированием, надо находить адрес копируемого диапазона (а не копировать диапазон ячеек высотой больше миллиона строк) |
29.05.2014, 12:46 | #5 | |
Форумчанин
Регистрация: 11.05.2009
Сообщений: 139
|
Цитата:
|
|
29.05.2014, 15:41 | #6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
надо соблюдать синтаксис языка программирования: Код:
|
|
29.05.2014, 15:53 | #7 | |
Форумчанин
Регистрация: 11.05.2009
Сообщений: 139
|
Цитата:
вот код: Private Sub CommandButton1_Click() Dim nomer As Long nomer = Worksheets("данные").Range("p1") 'переменная получает количество строк для обработки For y = 2 To nomer If Worksheets("данные").Cells(10, y) = "" Then Worksheets("данные").Range("a" & y & ":n" & y).Copy Worksheets("формы").Cells(Rows.Coun t, 1).End(xlUp).Offset(1) End If Next y End Sub по идее если в столбце "p" на листе "данные" нет значений, то выводиться на лист "формы" должны все заполненные строки, так нет же! воводятся не все и не понятно по каким признакам. |
|
29.05.2014, 16:21 | #8 |
Форумчанин
Регистрация: 11.05.2009
Сообщений: 139
|
я все победил! спасибо за помощь!!!
|
22.08.2017, 16:56 | #9 |
Новичок
Джуниор
Регистрация: 22.08.2017
Сообщений: 1
|
Всем привет! Помогите, пожалуйста, правильно написать код.
Дано: два листа одной книги, на 1 листе имеются две таблицы с пустыми строками между ними, на 2 листе данные. Диапазоны на обоих листах динамичны по количеству строк. Копируемый диапазон занимает столбцы A:AC. Нужно скопировать данные со 2го листа в первую пустую ячейку после первой таблицы на первом листе. По моему коду он копирует, вот только в самый низ 2 таблицы (что логично по коду). Как сделать, чтобы он вставлял данные в ячейку после 1 таблицы? В начале кода я Ее уже нашла, но хоть убей не могу понять как правильно указать на неё ссылку в последней строке кода. Dim wr, wm as Worksheet Dim rng1, rng2 as range Dim lastrow1, lastrow2, lrow1 as Long Set wr = ThisWorkbook.Worksheets ("R") wr.Activate lastrow1 = Columns (1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole) Set wm = ThisWorkbook.Worksheets ("M") wm.activate lastrow2 = wm.cells(Rows.Count, 1).End(xlUp).row lrow1 = lastrow1 + lastrow2 Set rng2 = wm.range(Cells(1,1), Cells(lastrow2, 29)) wr.Activate rng2.Copy wr.Cells(Rows.Count, 1).End(xlUp).Rows В конце я пробовала и Cells(lastrow1, 1) и range ("a" & lastrow1 & "ac" & lrow1), все мимо( Очень надеюсь на вашу помощь.) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заполнение листа данными с другого листа. | Pasha_Z | Microsoft Office Excel | 6 | 17.01.2014 20:01 |
Диапазон из другого Листа для поля со списком | Udgin28 | Microsoft Office Excel | 1 | 04.07.2012 12:59 |
Ссылка ячеек одного листа на ячейки другого листа | n0str0m0 | Microsoft Office Excel | 10 | 31.12.2011 12:11 |
Как вставить диапазон в конкретную строку листа Excel со сдвигом вниз имеющихся? | malor | Microsoft Office Excel | 3 | 17.01.2010 17:48 |
Как вычесть один диапазон из другого? | viter.alex | Microsoft Office Excel | 11 | 20.01.2009 16:30 |