Excel宏复制选择区域和粘贴

时间:2014-10-14 06:20:43

标签: excel vba

这就是我所拥有的:

我试图让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

1 个答案:

答案 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容易出错,所以我尽量避免使用它。