【问题标题】:Copy odd numbered rows from one column into another column's even numbered row将一列的奇数行复制到另一列的偶数行
【发布时间】:2021-02-25 03:45:48
【问题描述】:

我有一张包含大约 860 条记录的工作表。大小可以变化,但不会超过一千行。

我想将代码应用于整个工作表。

我想从 A 列复制奇数行的值并将该值粘贴到 B 列的偶数行中。

我想从 C 列复制奇数行的值并将该值粘贴到 D 列的偶数行中。

我想从 E 列复制奇数行的值并将该值粘贴到 F 列的偶数行中。

我不知道如何转到下一个奇数行(A5 到 B4,C5 到 D4,E5 到 F4),直到值出现空白,这将是我的工作表的结尾。

Sub myAwesomeMacro()

    For i = 1 To 1000
        Range("A3").Copy Range("B2")
        Range("A3").Copy Range("D2")
        Range("E3").Copy Range("F2")
    Next i
End Sub

我想在这个循环中实现的目标:
复制 A3 并将该值粘贴到 B2
复制 C3 并将该值粘贴到 D2
复制 E3 并将该值粘贴到 F2

然后取下一个奇数行并通过相同的模式:
复制 A5 并将该值粘贴到 B4
复制 C5 并将该值粘贴到 D4
复制 E5 并将该值粘贴到 F4

然后取下一个奇数行并通过相同的模式:
复制 A7 并将该值粘贴到 B6
复制 C7 并将该值粘贴到 D6
复制 E7 并将该值粘贴到 F6

【问题讨论】:

    标签: vba loops copy paste


    【解决方案1】:

    它会完成你的工作

    Dim i As Long
    Dim lastrow As Variant
    
    With ActiveSheet
       lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
       For i = 3 To lastrow
          .Cells(i-1, "B") = .Cells(i, "A")
          .Cells(i-1, "D") = .Cells(i, "C")
          .Cells(i-1, "F") = .Cells(i, "E")
       Next i
    End With
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      Sub myAwesomeMacro()
      Dim i As Long
      
      i = 3
      Do While Len(Cells(i, 1).Value) > 0
          Cells(i, 1).Copy Cells(i-1, 2)
          Cells(i, 3).Copy Cells(i-1, 4)
          Cells(i, 5).Copy Cells(i-1, 6) 
          i = i + 1
      Loop
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 2016-03-15
        • 2019-10-14
        • 2016-08-28
        • 2018-07-11
        • 1970-01-01
        • 2023-03-17
        相关资源
        最近更新 更多