Excel vba粘贴在最后一行数据上

时间:2016-10-07 06:48:38

标签: excel vba excel-vba

我需要对vba上的粘贴命令进行一些代码修改,但问题是它会粘贴在最后一行数据上

即时通讯使用此代码,这完美无缺,但是当我尝试复制另一个数据时,它会替换当前的数据

Range(Range("A2:L2" & lastrow), ActiveCell.End(xlDown)).PasteSpecial

3 个答案:

答案 0 :(得分:1)

将行更改为

Range(Range("A2:L2" & lastrow), ActiveCell.End(xlDown)).offset(1,0).PasteSpecial

答案 1 :(得分:0)

尝试使用.Insert

Sub Macro2()
    Rows("6:6").Copy
    Rows("15:15").Insert Shift:=xlDown
End Sub

答案 2 :(得分:0)

首先,您的一行代码不是很有帮助,副本也应该在那里...

然后:

Range(Range("A2:L2" & lastrow), ActiveCell.End(xlDown)).PasteSpecial

如果您复制了要粘贴的范围,则无需选择一系列单元格,只需要粘贴的第一个单元格即可!

所以最重要的部分是副本!

您的代码应如下所示:

With ThisWorkBook.Sheets("SheetToCopy")
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
        LastRow = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByRows, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Row
    Else
        LastRow = 1
    End If
    .Range("A2:L" & LastRow).Copy
End With

With ThisWorkBook.Sheets("SheetToPaste")
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
        LastRow = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByRows, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Row
    Else
        LastRow = 1
    End If
    .Range("A" & LastRow + 1).PasteSpecial
End With