我正在处理代码,我想要做的就是从一张纸上复制数据并将其粘贴到另一张具有表格设置的纸张中。
我的代码完全按照我的意愿执行,但是表格没有调整大小以包含复制的所有行,只有复制数据的第一行进入表格。其余的格式不在表格中。
这是我运行代码后的样子
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
答案 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