如何从其他工作表复制行并将其粘贴到包含表格的工作表中?

时间:2017-07-29 23:51:17

标签: excel vba excel-vba listobject

我正在处理代码,我想要做的就是从一张纸上复制数据并将其粘贴到另一张具有表格设置的纸张中。

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

enter image description here

这是我运行代码后的样子

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

1 个答案:

答案 0 :(得分:0)

通常,在表格末尾下方插入会使其自动增长,但在粘贴超出表格中列数的范围时则不会。有两种方法可以解决这个问题:

1-将复制的范围限制为表中的列数;即。

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

2-使用方法ListObject.Resize显式调整表格大小;即。

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