Excel 如何复制最后一行数据的范围并粘贴到它下面的行中
我试图创建一个宏来获取工作表上的最后一行数据,并将其复制/粘贴到它前面的行中。 我需要它来提取B-N列中的数据。 我可以用下面的代码只为B列做这件事,但我不知道语法是什么让它为B-N列做这件事-有人能帮忙吗Excel 如何复制最后一行数据的范围并粘贴到它下面的行中,excel,vba,Excel,Vba,我试图创建一个宏来获取工作表上的最后一行数据,并将其复制/粘贴到它前面的行中。 我需要它来提取B-N列中的数据。 我可以用下面的代码只为B列做这件事,但我不知道语法是什么让它为B-N列做这件事-有人能帮忙吗 Sub copylastrow() Worksheets("Sheet1").Activate Range("B" & Rows.Count).End(xlUp).Copy Range("B" & Rows.Co
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
让我知道它是否有效您要查找最后一行数据的列是什么,B还是N?您是否粘贴了特殊值?谢谢-我声明了工作表b/c还有大约40张其他工作表我需要相同的流程-&我的目标是用公式将最后一行数据(在我的例子中是第46行)复制到第47行-这就是我为什么没有传输它们-有任何建议吗?您知道所有工作表的名称吗?所有工作表都在同一工作簿中吗?它总是第46行吗?我知道所有的名字,它总是数据集中被复制到下一行的最后一行(所以这个月是46->47,下个月是47->48,等等),是的,它们都在同一个工作簿中。但是我实际上调整了你给我的代码,使之能够携带公式&解决了我需要解决的所有问题-我非常感谢你的帮助!令人惊叹的。如果代码有帮助,考虑对答案进行标记,这样别人就可以找到答案。