0

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

4

3 回答 3

0

根据范围,这样的代码可以帮助您:

Sheet1.Range("a1").End(xlDown).Copy Sheet2.Range("a1")
于 2012-10-07T20:47:28.583 回答
0

你可以试试下面的代码。我使用了一个简单的数据测试集,其中行A包含列标题,其余的是数据。这使用 rowA的数据来确定有多少行(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
于 2012-10-08T03:12:02.543 回答
0

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

于 2017-11-23T14:08:48.573 回答