复制问题-从一张纸粘贴到另一张纸以粘贴第二张纸

时间:2019-07-16 13:13:05

标签: excel vba

我有这段代码可以将数据从两张纸复制到另一张工作簿中。问题是它不能从第二张纸正确复制。它仅复制第12和13行,而范围应为第13行到最后一行。 我假设它必须对activecell有所帮助,但是很难找到它。

谢谢。

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

Datasheet

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

2 个答案:

答案 0 :(得分:0)

尝试以下操作::使用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

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

答案 1 :(得分:0)

我不知道您的工作表Data是什么样子,并且我还没有对此进行测试,但是如果您定义了wbk1wbk,它可能会起作用。

Sub Copy()
Dim wksSource As Worksheet
Dim wksData As Worksheet
Dim LastRowSource As Long, LastRowData As Long
    Set wksData = wbk.Worksheets("Data")
    For i = 2 To 3
        Set wksSource = wbk1.Worksheets(i)
        With wksSource
            lngRowsAV = .Cells(.Rows.Count, "AV").End(xlUp).Row
            .Range("AV12:AV" & lngRowsAV).AutoFilter Field:=48, Criteria1:="=Yes"
            LastRowSource = .Cells(.Rows.Count, "D").End(xlUp).Row
            LastRowData = wksData.Cells(wksData.Rows.Count, "D").End(xlUp).Row
            .Range("AV13:CJ" & LastRowSource).Copy
            wksData.Range("A" & LastRowData + 1).PasteSpecial xlPasteValues
        End With
    Next i
    Application.CutCopyMode = False
End Sub
相关问题