2016-10-07 204 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