Как переместить строки из одной рабочей книги в другую (без выбора) - PullRequest
1 голос
/ 03 мая 2019

Моя цель - взять документ Excel с переменным размером строки, скопировать его, а затем вставить его в нижний ряд нового документа.

Более длинная история, мне нужно брать ежемесячные отчеты о продажах и складывать их в большой файл Excel.Каждый месяц мы делаем переменное количество продаж.Мне нужно объединить все эти месяцы вместе, чтобы мы могли их обработать.

У меня есть код, который, как я думал, работал ниже.Он мог перемещать переменные строки на разных рабочих листах, но не мог делать то же самое для разных рабочих книг.

Private Sub MoveRowToEndOfTable()
Dim LastRow As Long
LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row
Sheets(1).Range("A2:A" & LastRow, "G2:G" & LastRow).Copy
Workbooks("BRN report Aggregator.xlsx").Worksheets("New shares EOM").Range("a6000").End(xlUp).Offset(1, 0).Cells.Insert
End Sub

1 Ответ

0 голосов
/ 03 мая 2019

Я полагаю, что ваша книга закрыта, проверьте ее перед вставкой значений (если книга закрыта ~> откройте ее):

Private Sub MoveRowToEndOfTable()
   Dim LastRow As Long
   LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   Sheets(1).Range("A2:A" & LastRow, "G2:G" & LastRow).Copy
   Dim wb As Workbook, wb_target As Workbook
   'check if workbook is open already
   For Each wb In Workbooks
       If wb.Name = "BRN report Aggregator.xlsx" Then
           Set wb_target = Workbooks("BRN report Aggregator.xlsx")
               Exit For
       End If
   Next wb
   'if not then open it
   If wb_target Is Nothing Then
       Set wb = Workbooks.Open("Path_to_file/BRN report Aggregator.xlsx")
   End If
   wb.Worksheets("New shares EOM").Range("a6000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll 'or xlPasteValues  --depends on your needs
   wb.Close True 'save and close if required
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...