2

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

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

在此处输入图像描述

这是我运行代码后的样子

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
4

1 回答 1

0

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

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

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

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

With Sheet1.ListObjects(1)
  .Resize .Range.Resize(.Range.Rows.count + 1)
End With
于 2017-07-30T00:10:17.500 回答