我需要对vba上的粘贴命令进行一些代码修改,但问题是它会粘贴在最后一行数据上
即时通讯使用此代码,这完美无缺,但是当我尝试复制另一个数据时,它会替换当前的数据
Range(Range("A2:L2" & lastrow), ActiveCell.End(xlDown)).PasteSpecial
答案 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