我是这个网站的新手,在excel中使用vba绝对是新手。我需要从Sheet1到Sheet2复制大约91行数据。但是,sheet1的最后一行需要是sheet2的第一行。然后第1行第1行作为第2行第2行,依此类推,直到第1行第1行成为第2页的最后一行,任何人都可以让我知道使用宏做同样的解决方案吗?
答案 0 :(得分:0)
根据范围,这样的代码可以帮助您:
Sheet1.Range("a1").End(xlDown).Copy Sheet2.Range("a1")
答案 1 :(得分:0)
您可以尝试以下代码。我使用了一个简单的测试数据集,其中行A
包含列标题,其余的是数据。这使用行A
的数据来确定有多少行(End(xlDown)
部分),因此只有在该列中没有空格时它才有效。它会将数据粘贴到Sheet2
,从A2
开始(再次假设其中有标题)。如果您不需要标题,则可以相应地进行调整。
Sub CopyStuff()
Dim MyRange As Range
Dim MySheet As Worksheet
' Declare your variables (adjust MyRange to what you want)
' I used some test data where row A contained headers
' and the data followed
Set CurSheet = ActiveWorkbook.ActiveSheet
Set DestSheet = ActiveWorkbook.Sheets("Sheet2")
Set MyRange = CurSheet.Range("A2:E" & Range("A1").End(xlDown).Row)
' Set the number of rows in your range, minus the headers
RowCount = MyRange.Rows.Count - 1
' Iterate through the rows, pasting in reverse
' This starts pasting at A2, assuming headers are in A1
For i = 1 To RowCount
MyRange.Rows(RowCount + 2 - i).Copy DestSheet.Range("A" & i + 1)
Next i
End Sub
答案 2 :(得分:0)
将sheet1数据复制到sheet2。添加额外的列说'数字(#)'并从第1行开始编号直到结束。然后将过滤器添加到'数字(#)'列并按降序排序。希望有所帮助!