Excelmacros复制select区域和粘贴

这是我的:

我试图让Excel复制只有我select和粘贴在另一个电子表格中的下一个空行的单元格。

但在下面的代码中,它修复了正在复制的单元格的范围。 我应该如何改变我的代码,以便它可以是一个dynamic范围?

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 

删除声明

 Range("A6:E6").Select 

这个语句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。

根据我的经验,使用.Select容易出错,所以我尽量避免使用它。