Хорошего дня всем. Есть две книги с двумя листами в каждой. Как выделить в книге "откуда", на листе "1" все заполненные строки (или ячейки, если это проще), но кроме первой строки, и скопировать в книгу "куда", на лист "1", (в ней уже есть информация, после которой нужно скопировать), ну и со вторым листом поступить также. Забыл уточнить книга "откуда" и "куда" не лежат в одной папке. Есть макрос, можно как-нибудь доработать? [vba]
Код
Sub КопияВкнигу() Dim Исходная As Excel.Workbook, Конечная As Excel.Workbook Set Исходная = ActiveWorkbook 'открываем книгу Set Конечная = Workbooks.Open("C:\Users\User\Desktop\Новая папка\куда.xlsx") lastUsedRowInMyRange = Sheets("1").Cells(Sheets("1").Rows.Count, 3).End(xlUp).Row Исходная.Worksheets("1").Range("B2").CurrentRegion.Copy Конечная.Worksheets("1").Cells(Rows.Count, "B").End(xlUp)(3, 0) Конечная.Worksheets("1").Rows.PasteSpecial_'здесь копирует в книгу, но ругается Operation = xlPasteSpecialOperationAdd Конечная.Close SaveChanges:=True End Sub
[/vba]
Хорошего дня всем. Есть две книги с двумя листами в каждой. Как выделить в книге "откуда", на листе "1" все заполненные строки (или ячейки, если это проще), но кроме первой строки, и скопировать в книгу "куда", на лист "1", (в ней уже есть информация, после которой нужно скопировать), ну и со вторым листом поступить также. Забыл уточнить книга "откуда" и "куда" не лежат в одной папке. Есть макрос, можно как-нибудь доработать? [vba]
Код
Sub КопияВкнигу() Dim Исходная As Excel.Workbook, Конечная As Excel.Workbook Set Исходная = ActiveWorkbook 'открываем книгу Set Конечная = Workbooks.Open("C:\Users\User\Desktop\Новая папка\куда.xlsx") lastUsedRowInMyRange = Sheets("1").Cells(Sheets("1").Rows.Count, 3).End(xlUp).Row Исходная.Worksheets("1").Range("B2").CurrentRegion.Copy Конечная.Worksheets("1").Cells(Rows.Count, "B").End(xlUp)(3, 0) Конечная.Worksheets("1").Rows.PasteSpecial_'здесь копирует в книгу, но ругается Operation = xlPasteSpecialOperationAdd Конечная.Close SaveChanges:=True End Sub
Sub КопияВкнигу() Dim Исходная As Excel.Workbook, Конечная As Excel.Workbook Set Исходная = ThisWorkbook Set Конечная = Workbooks.Open("C:\Users\User\Desktop\Новая папка\куда.xlsx") 'открываем книгу For i = 1 To Исходная.Sheets.Count lastUsedRowInMyRange = Конечная.Sheets(i).Range("A1").CurrentRegion.Rows.Count nrow = Исходная.Sheets(i).Range("A1").CurrentRegion.Rows.Count Исходная.Sheets(i).Range("B2").CurrentRegion.Offset(1).Resize(nrow - 1).Copy Конечная.Sheets(i).Range("A" & lastUsedRowInMyRange + 1) Next i Конечная.Close SaveChanges:=True End Sub
[/vba]
Может так подойдёт [vba]
Код
Sub КопияВкнигу() Dim Исходная As Excel.Workbook, Конечная As Excel.Workbook Set Исходная = ThisWorkbook Set Конечная = Workbooks.Open("C:\Users\User\Desktop\Новая папка\куда.xlsx") 'открываем книгу For i = 1 To Исходная.Sheets.Count lastUsedRowInMyRange = Конечная.Sheets(i).Range("A1").CurrentRegion.Rows.Count nrow = Исходная.Sheets(i).Range("A1").CurrentRegion.Rows.Count Исходная.Sheets(i).Range("B2").CurrentRegion.Offset(1).Resize(nrow - 1).Copy Конечная.Sheets(i).Range("A" & lastUsedRowInMyRange + 1) Next i Конечная.Close SaveChanges:=True End Sub
Доброго дня, макрос рабочий, копирует в книгу не взирая на имена листов, но только в том случае, если макрос есть в книге, из которой производится копирование. Как бы избавиться от этого? Все разобрался ActiveWorkbook.
Доброго дня, макрос рабочий, копирует в книгу не взирая на имена листов, но только в том случае, если макрос есть в книге, из которой производится копирование. Как бы избавиться от этого? Все разобрался ActiveWorkbook.lapin9126
Сообщение отредактировал lapin9126 - Суббота, 24.10.2015, 09:32