这就是我所拥有的:
我试图让excel只复制我选择并粘贴在另一个电子表格中下一个空白行的单元格。
但是在下面的代码中,它修复了被复制的单元格的范围。我该如何更改代码以使其成为动态范围?
Sub CopyPaste()
Range("A6:E6").Select
Selection.Copy
Sheets("Sheet2").Select
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & lMaxRows + 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & lMaxRows + 1).Select
End Sub
答案 0 :(得分:2)
删除声明
Range("A6:E6").Select
此语句选择固定范围。
试试这个
Sub CopyPaste()
Dim sht As Worksheet
Dim rngTarget As Range
Dim lMaxRows As Long
Selection.Copy
Set sht = Sheets("Sheet2")
lMaxRows = sht.Cells(Rows.Count, "A").End(xlUp).Row
Set rngTarget = sht.Range("A" & lMaxRows + 1)
rngTarget.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
lMaxRows = sht.Cells(Rows.Count, "A").End(xlUp).Row
sht.Activate
sht.Range("A" & lMaxRows + 1).Select
End Sub
我重写了代码以准确指定使用哪些单元格和范围。如果没有,它将在当时打开(活动)的工作表上应用选择。
根据我的经验,使用.Select
容易出错,所以我尽量避免使用它。