【问题标题】:the last row of sheet1 needs to be the first row of sheet2. 2nd last row of sheet1 to be 2nd row of sheet2 and so onsheet1 的最后一行必须是 sheet2 的第一行。 sheet1 的倒数第二行是 sheet2 的第二行,依此类推
【发布时间】:2017-11-23 22:08:48
【问题描述】:

我是这个网站的新手,对在 Excel 中使用 vba 完全陌生。我需要将大约 91 行数据从 Sheet1 复制到 Sheet2。但是,sheet1 的最后一行需要是 sheet2 的第一行。然后 sheet1 的第 90 行成为 sheet2 的第 2 行,依此类推,直到 sheet1 的第 1 行成为 sheet2 上的最后一行,谁能告诉我使用宏的解决方案吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

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

    Sheet1.Range("a1").End(xlDown).Copy Sheet2.Range("a1")
    

    【讨论】:

      【解决方案2】:

      你可以试试下面的代码。我使用了一个简单的数据测试集,其中行 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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-21
          相关资源
          最近更新 更多