Как скопировать и вставить две отдельные таблицы в конец другой таблицы в VBA? - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь скопировать и вставить две таблицы в конец другой таблицы. Вот мой код:

Sub Inv_Copy_Paste()
    Dim Inv As Worksheet
    Dim Chart As Worksheet
    Dim lr2 As Long

    Set Inv = Worksheets("Inventory Data")
    Set Chart = Worksheets("Inventory for Charts")
    lr2 = Chart.Cells(Rows.Count, 1).End(xlUp).Row

    With Inv
        .Range("A2", ("I2" & .Range("A" & Rows.Count).End(xlUp).Row)).Copy Destination:=Chart.Range("A" & lr2 + 1)
        .Range("K2", ("S2" & .Range("K" & Rows.Count).End(xlUp).Row)).Copy Destination:=Chart.Range("A" & lr2 + 1)   
    End With
End Sub

Нет проблем при копировании одного из диапазонов.
При объединении кода для обоих диапазонов для копирования успешно копируется только второй диапазон.
Второй диапазон, кажется, перезаписывает первый диапазон.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 октября 2018

Вместо сохранения последней строки в переменной и последующего пересчета последней строки перед вставкой второй таблицы, вы можете просто динамически вычислить последнюю строку и использовать Offset.

Т.е., измените оба экземпляра

Destination:=Chart.Range("A" & lr2 + 1)

до

Destination:=Chart.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...