2012-10-07 57 views
0

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

回答

0

根据不同的范围内,这样的代码可以帮助你:

Sheet1.Range("a1").End(xlDown).Copy Sheet2.Range("a1") 
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 
0

将sheet1数据复制到sheet2。添加额外的列'数字(#)'并开始从第1行开始编号直到结束。然后将过滤器添加到“Number(#)”列并按降序排序。希望有所帮助!

相关问题