2016-10-07 42 views
0

我需要一些代码的修改在这里,对VBA粘贴命令的最后一排,但事情是,将粘贴使用此代码数据Excel VBA中粘贴数据

IM的最后一行,这项工作完美但是,当IM尝试复制另一个数据是替换当前

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

您需要观看YouTube上的所有的猫头鹰VBA教程。以下是有关[Excel VBA简介第5部分 - 选择单元格(范围,单元格,活动单元,结束,偏移)](https://www.youtube.com/watch?v=c8reU-H1PKQ) –

回答

0

尝试使用.Insert

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

其不工作 –

+1

你修改它来复制正确的范围并插入正确的范围?也许你想xlUp不xlDown? 你的问题很不清楚你想完成什么,而“它的不工作”更加不明确...... – Jbjstam

1

变线

Range(Range("A2:L2" & lastrow), ActiveCell.End(xlDown)).offset(1,0).PasteSpecial 
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