复制到最后一行

时间:2015-09-24 20:44:28

标签: excel vba excel-vba

我有多张工作表,我想将他们的数据复制到另一个工作簿的最后一行。数据具有随机行数但定义数量的列,我无法复制它(不是所有工作表,只有具有数据的行),然后将其粘贴到最终工作簿的最后一行。我该怎么办?我根本不知道......

免责声明:我不想使用select of activesheet,因为我会打开多个工作簿,这给我带来了麻烦。此外,数据是继续的,在这里我的意思是它的中间没有空行。此外,我不认为这会改变任何东西,但这个代码在循环内运行,所以它从多个文件复制所有表。

谢谢!

2 个答案:

答案 0 :(得分:0)

col是您尝试复制的列号

For Each ws in Activeworkbook.worksheets

    lastrow = ws.cells(ws.rows.count, col).end(xlup).row

    'code to copy and paste

Next ws

答案 1 :(得分:0)

我认为您有工作表的句柄,因此您可以使用此代码复制数据:

Public Sub CopyAcross(oSheetFrom As Worksheet, oSheetTo As Worksheet)

    Const DATA_START_ADDRESS As String = "$A$1"

    oSheetFrom.Range(DATA_START_ADDRESS).CurrentRegion.Copy

    oSheetTo.Range("A" & oSheetTo.Rows.Count).End(xlUp).PasteSpecial xlPasteAll

    Application.CutCopyMode = False

End Sub

假设要复制的数据在每张工作表上具有相同的起始地址,指定为DATA_START_ADDRESS