我如何复制另一张工作表中的行,并将其粘贴到其中有一张表的工作表中?

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

我的代码正在做我想要做的事情,但是,表格不会resize以包含所有被复制的行,只有复制数据的第一行进入表格。 其余格式不在表格中。

在这里输入图像说明

这是我运行代码后的样子

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-将复制的范围限制为表格中的列数; 即

 .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