Скопировать диапазон данных и добавить в конец таблицы - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь скопировать данные в таблице 11 (различается по количеству строк) и вставить их в качестве значений в конец другой таблицы.

В зависимости от значения Begin! G9 (либо 001.001, 001.002) оно будет вставлено в лист «001.001» или «001.002»

«001.001» имеет «Таблица 5»
«001.002» имеет «Таблица 6»

Это то, что я имею до сих пор:

Sub Finalize()

    'Copy data in Item table to the appropriate page
    If Sheets("Begin").Range("G9") = "001.001" Then
        'Insert New Row
        Sheets("001.001").Select
        ActiveSheet.ListObjects("Table5").ListRows.Add (1)

        'Copy and Paste from Begin to first row
        Worksheets("Begin").Range("G9:I9").Copy Worksheets("demo").Range("A2:C2")

    ElseIf Sheets("Begin").Range("G9") = "001.002" Then
        Sheets("001.002").Select
        Selection.ListObject.ListRows.Add AlwaysInsert:=True
        Worksheets("Begin").ListObjects("Table11").DataBodyRange.Copy Worksheets("001.002").ListObjects("Table6").ListRow.Add AlwaysInsert:=True

    End If

    Sheets("Begin").Select

End Sub

1 Ответ

0 голосов
/ 09 ноября 2018

Вот мои предположения:

  • На листе «Начало» у вас есть объект-лист, начинающийся в ячейке G8. У него есть один ряд.
  • У вас есть два других листа с именами 001.001 и 001.002.
  • Ячейка G9 (первая ячейка в первом ряду объекта на листе Begin) будет содержать одно из этих имен листов.
  • Листобъекты на двух листах имеют такое же количество столбцов, что и столбец в начале.

Вот некоторый закомментированный код

Sub CopyTable()

    Dim loSource As ListObject
    Dim loDest As ListObject

    'Get a reference to the table you want to copy
    Set loSource = Sheets("Begin").ListObjects(1)
    'Get a reference to the destination table
    Set loDest = Sheets(loSource.ListRows(1).Range.Cells(1).Value).ListObjects(1)

    'Copy the source to a new row
    loSource.DataBodyRange.Copy loDest.ListRows.Add.Range

End Sub
...