我如何从另一个 sheet 复制行并将它们粘贴到其中有 table 的 sheet 中?

How do i copy rows from another sheet and paste them into a sheet that has a table in it?

我正在编写代码,我想做的就是从一个 sheet 复制数据并将其粘贴到另一个具有 table 设置的 sheet。

我的代码完全按照我的意愿执行,但是 table 不会调整大小以包含复制的所有行,只有复制数据的第一行进入 table。其余的格式不在 table.

这是我运行代码

后的样子
Sub LastRowInOneColumn()
  Dim LastRow As Longenter image description here
  Dim i As Long, j As Long

  'Find the last used row in a Column
  With Worksheets("First Page")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
  End With

  'first row number where you need to paste values in Sheet1'
  With Worksheets("Report")
    j = .Cells(.Rows.Count, "A").End(xlUp).Row '+ 1
  End With

  For i = 1 To LastRow
    With Worksheets("First Page")
      'If .Cells(i, 1).Value = "X" Then
        .Rows(i).Copy Destination:=Worksheets("Report").range("A" & j)
        j = j + 1
      'End If
    End With
  Next i
End Sub

通常,在 table 末尾下方插入会使它自动增长,但当粘贴的范围超过 table 中的列数时则不会。有两种处理方法:

1- 限制复制范围为table中的列数;即

.Rows(i).Resize(,4).Copy Destination:=Worksheets("Report").range("A" & j)
'       ^^^^^^^^^^^

2- 使用方法 ListObject.Resize 显式调整 table 的大小;即

With Sheet1.ListObjects(1)
  .Resize .Range.Resize(.Range.Rows.count + 1)
End With