Копировать данные из активных ячеек в другую книгу - PullRequest
0 голосов
/ 07 апреля 2020

Я абсолютный новичок здесь. Я видел этот пример в Интернете, чтобы скопировать данные из фиксированного диапазона рабочей книги в другую рабочую книгу.

Может кто-нибудь подсказать мне, как можно копировать данные из ячейки A2 и далее в последнюю активную ячейку с данными? Here's an example of the data I need to copy.

В этом примере я хотел скопировать ячейки, выделенные синим цветом, в другую книгу. Данные меняются каждый раз, поэтому фиксированный диапазон не работает для меня. Я пытаюсь использовать ".UsedRange", но он также копирует нижний колонтитул, что мне не нужно.

Sub Copy_Method()
  Workbooks("New-Data.xlsx").Worksheets("Export").Range("A2:D9").Copy _
    Workbooks("Reports.xlsm").Worksheets("Data").Range("A2")

 End Sub

Ref: https://www.excelcampus.com/vba/copy-paste-another-workbook/

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

согласно опубликованному снимку экрана:

  • «нижний колонтитул» помещается в столбец A
  • , данные заполняют все столбцы от A до E

следовательно, вы можете использовать столбец B, чтобы получить последнюю использованную строку ячейки из:

Sub Copy_Method()
   With Workbooks("New-Data.xlsx").Worksheets("Export")
       .Range("A2:E" & .Cells(.Rows.Count, 2).End(xlUp).Row).Copy _
       Workbooks("Reports.xlsm").Worksheets("Data").Range("A2")
   End With
 End Sub
0 голосов
/ 07 апреля 2020

Учитывая вашу конкретную настройку, вы можете использовать свойство CurrentRegion .

Sub Copy_Method()

Dim r As Range

Set r = Workbooks("New-Data.xlsx").Worksheets("Export").Range("A1").CurrentRegion
Set r = r.Offset(1).Resize(r.Rows.Count - 1) 'exclude the header
r.Copy Workbooks("Reports.xlsm").Worksheets("Data").Range("A2")

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...