【问题标题】:Excel VBA - Copy range from one sheet to another, next empty rowExcel VBA - 将范围从一张纸复制到另一张纸,下一个空行
【发布时间】:2016-10-27 18:09:00
【问题描述】:

我正在尝试从一张纸中获取一个范围并将其复制到另一张纸的下一个空行(基本上,粘贴到A12:D12 的范围内以获取另一张纸的下一个空行)。范围永远不会改变。我见过很多这样的问题,人们说答案很好,但我无法让它发挥作用。

对 VBA 非常陌生。这是我正在使用的代码:

Private Sub CommandButton1_Click()

    Dim NextRow As Range
    Set NextRow = Range("A" & Sheets("Sheet3").UsedRange.Rows.Count + 1)  

    Sheet1.Range("A12:D12").Copy
    Sheet3.Activate
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
    Application.CutCopyMode = False

    Set NextRow = Nothing

End Sub

这会运行,但实际上并未将任何值粘贴到 Sheet3 中。有什么我想念的吗?有没有更好的方法来做到这一点?

谢谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您刚刚在定义NextRow 的第二行中遇到了问题。
    有一个更好的方法吗?这取决于您的需求;我个人不喜欢在 VBA 宏期间激活/选择其他单元格,例如我会摆脱Sheet3.Activate。我还会在不使用剪贴板的情况下“手动”复制内容,以避免更改用户的剪贴板内容。

    Private Sub CommandButton1_Click()
    
        Dim NextRow As Range
        Set NextRow = Sheet3.Range("A" & Sheet3.Rows.Count).End(xlUp).Offset(1, 0)
    
        Sheet1.Range("A12:D12").Copy
        Sheet3.Activate
        NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
        Application.CutCopyMode = False
    
        Set NextRow = Nothing
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      相关资源
      最近更新 更多