首页 > 解决方案 > 复制问题 - 从一张纸粘贴到另一张纸以获取第二张纸

问题描述

我有这段代码,可以将数据从两张表复制到另一张工作簿中的一张。问题是它没有从第二张纸上正确复制。它只复制第 12 行和第 13 行,而范围应该是第 13 行到最后一行。我假设它必须与 activecell 做一些事情,但很难找到它。

谢谢。

我在另一个文件中有此代码,它将 20 张纸复制到一张,并且一切正常。唯一的区别是它们都在同一个工作簿中。

数据表

Sub Copy()

For i = 2 To 3

wbk1.Worksheets(i).Activate
LastRow = ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Row

Range("AV13:CJ" & LastRow).Select

Selection.Copy
wbk.Sheets("Data").Activate

LastRow = ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Select

Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

ActiveCell.Offset(0, -3).Select
Selection.PasteSpecial xlPasteValues


Next i

标签: excelvba

解决方案


试试这个:使用 F8 来运行这个代码,这样你就会知道每一步发生了什么。如果 t 出错了,您就会知道。

Sub Copy()

For i = 2 To 3

With wbk1.Worksheets(i)

lastrow = .Cells(.Rows.Count, "D").End(xlUp).Row

.Range("AV13:CJ" & lastrow).Copy

End With

With wbk.Sheets("Data")

.Cells(.Rows.Count, "D").End(xlUp).Select
.Activate

End With


Do While Not IsEmpty(ActiveCell)
    ActiveCell.Offset(1, 0).Select
Loop

ActiveCell.Offset(0, -3).Select
Selection.PasteSpecial xlPasteValues


Next i

End Sub

我的建议是不要使用激活和选择。尝试并配置要粘贴数据的确切引用。在代码中,我认为计算最后一行存在问题。它现在应该可以工作了。


推荐阅读