【问题标题】:Excel Macro Copy Selection area and PasteExcel 宏复制选择区域和粘贴
【发布时间】:2016-10-13 03:08:17
【问题描述】:

这就是我所拥有的:

我正在尝试让 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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    删除语句

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

    【讨论】:

    • 哇。非常感谢!我认为那里必须有一个“范围”。仍然是excel宏的初学者。 =)
    • 不,在这种情况下您不必这样做,因为您已经手动选择了一个范围。每个人都是初学者,没问题。
    • 还有一个问题,为什么当我在命令按钮中应用代码运行编码时,会出现“运行时错误1004:范围类的选择方法失败。”?但是当我将它作为宏运行时没有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多