1

我想复制各种工作表中的所有行和列,然后粘贴到一个工作表中,一个工作表位于另一个工作表的下方。

但我收到错误。我尝试使用网站提供的各种示例。但没有一个对我有用。请帮我解决。我在数组中传递工作表。所以我会按顺序得到工作表。

我提供了出现错误的代码。我在粘贴部分遇到错误。据说它应该是 A1 或 R1C1 。但我需要将所有工作表粘贴在一张纸的下方。

For m = 1 To fnum


lastrow = tempws.Range("A" & ws.Rows.Count).End(xlUp).Row

ws(m).Cells.Copy tempws.Cells((lastrow + 1), 1)

Next m

tempws.Save
4

1 回答 1

0

这是因为您试图将工作表的整个单元格范围复制到工作表上小于整个工作表的部分中。它不会起作用,因为没有足够的细胞剩余。您需要缩小复印表的尺寸以仅捕获带有数据的单元格。

像这样的东西应该是一个很好的框架来帮助你入门。您可能需要调整一些东西以适应您的数据。此外,这假定复印表中的所有数据都从单元格 A1 开始。再次,根据需要进行调整。

For me = 1 to fnum

    lastrow = tempws.Range("A" & tempws.Rows.Count).End(xlUp).Row 'i changed this to tempws, as you just had ws

    With ws(m)

        lastcopyrow = .Range("A" & .Rows.Count).End(xlup).Row
        lastcopycol = .Range("A" & .Columns.Count).End(xlToLeft).Column    

        .Range("A1",.cells(lastcopyrow, lastcopycol)).Copy tempws.Cells((lastrow + 1), 1)

    End With

Next m

此外,如果由于 A1 或 R1C1 表示法而出现参考错误,您可能只想粘贴为值,而不是直接复制/粘贴。

于 2013-01-15T17:08:20.360 回答