繁体   English   中英

如何复制最后一行数据的范围并粘贴到它下面的行中

[英]How To Copy Range of Last Row of Data and Paste into Row below It

我正在尝试创建一个宏来获取工作表上的最后一行数据并将其复制/粘贴到它之前的行中。 我需要它来获取列 BN 中的数据。 我只能使用下面的代码为 B 列执行此操作,但我无法弄清楚让它为 BN 列执行此操作的语法 - 有人可以帮忙吗?

Sub copylastrow()

Worksheets("Sheet1").Activate

Range("B" & Rows.Count).End(xlUp).Copy
Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial

End Sub

代码中的一些注释:

  • 定义源工作表(无需激活)
  • 查找特定列中的最后一行
  • 根据列和最后一行设置源范围
  • 传输值而不复制它们更快

假设:

  • B列是获取最后一行的引用
  • 你只是在粘贴值

阅读评论并调整代码以满足您的需求。

代码

Public Sub CopyLastRow()
    
    ' Define the source sheet (no need to activate it)
    Dim sourceSheet As Worksheet
    Set sourceSheet = ThisWorkbook.Worksheets("Sheet1")
    
    ' Find the last row in an specific column
    Dim lastRow As Long
    lastRow = sourceSheet.Range("B" & sourceSheet.Rows.Count).End(xlUp).Row
    
    ' Set the source range according to columns and last row
    Dim sourceRange As Range
    Set sourceRange = sourceSheet.Range("B" & lastRow & ":N" & lastRow)
    
    ' Transfer values without copying them is faster
    sourceRange.Offset(1).Value = sourceRange.Value

End Sub

让我知道它是否有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM