sheet1的最后一行需要是sheet2的第一行。第1行的第2行是第2行的第2行,依此类推

时间:2012-10-07 10:42:27

标签: excel excel-vba vba

我是这个网站的新手,在excel中使用vba绝对是新手。我需要从Sheet1到Sheet2复制大约91行数据。但是,sheet1的最后一行需要是sheet2的第一行。然后第1行第1行作为第2行第2行,依此类推,直到第1行第1行成为第2页的最后一行,任何人都可以让我知道使用宏做同样的解决方案吗?

3 个答案:

答案 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行开始编号直到结束。然后将过滤器添加到'数字(#)'列并按降序排序。希望有所帮助!