Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2019, 17:39   #1
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию Макрос вставить на следующую свободную строку.

Добрый день.

У меня есть файл, с несколькими листами, на которых есть однотипные таблицы.
Мне необходимо скопировать эти таблицы и вставить на третий лист одна под другой, а потом удалить пустые значения.

Для этого я написала макрос:
Код:
Sub Макрос5()
'
' Макрос5 Макрос
'

'
    Sheets("Лист1").Select
    Range("B1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("B1:B37,F1:G37,I1:J37").Select 'выбираю нужные столбцы до конца таблицы, хотя можно выбрать не пустые, но что б не заморачиваться просто выбираю до конца
    Range("I1").Activate
    Selection.Copy
    Sheets("Лист3").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Лист2").Select
    Range("B2:B37,F2:G37,I2:I37,J2:J37").Select
    Range("J2").Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист3").Select
    Range("A38").Select ' Вот тут то в общем то и загвоздочка
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Rows("6:37").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
    Range("A1").Select
End Sub
Подскажите пожалуйста, как задать для вставки данных следующую свободную ячейку, при условии, что с первого листа вставляются строки с 1 по 37, а со второго и следующих ( которые будут добавляться) строки со 2 по 37.
Как я понимаю, можно задать какую-то переменную, к примеру к которая будет увеличиваться на 36. но не понимаю как задать это.
вроде можно как-то так.
Код:
r = Cells(Rows.Count, 1).End(xlUp).Row
Но как вставить данные именно в эту r, не понимаю..

Буду очень благодарна за помощь))
Вложения
Тип файла: xlsx Книга1.xlsx (13.4 Кб, 7 просмотров)
Елена195 вне форума Ответить с цитированием
Старый 02.02.2019, 12:46   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Sub Макрос5()
    Sheets("Лист3").Cells.ClearContents
    Sheets("Лист1").Range("B1:B37,F1:G37,I1:J37").Copy     'выбираю нужные столбцы до конца таблицы, хотя можно выбрать не пустые, но что б не заморачиваться просто выбираю до конца
    Sheets("Лист3").Range("A1").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("Лист2").Range("B2:B37,F2:G37,I2:J37").Copy
    Sheets("Лист3").Cells(Sheets("Лист3").Cells(Rows.Count, "B").End(xlUp).Row + 1, "A").PasteSpecial _
        Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 06.02.2019, 11:16   #3
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию

Александр, Большое спасибо)
Елена195 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход на следующую строку в файле linkoln_7 PHP 1 19.01.2015 12:23
макрос: скопировать содержимое и вставить в нижнюю строку Sokovnin Microsoft Office Excel 3 18.09.2013 18:47
Заполнить следующую строку greensage Microsoft Office Excel 5 24.05.2013 12:21
Двунаправленный линейный список строк. Вставить строку, удалить строку и заменить строку tarasman11 Паскаль, Turbo Pascal, PascalABC.NET 4 05.07.2012 20:27
Перейти на следующую строку в фильтре KOHCEPBATOP Microsoft Office Excel 4 27.08.2010 11:10