【问题标题】:How to create a loop to Copy and Paste Data from one worksheet to another如何创建循环以将数据从一个工作表复制并粘贴到另一个工作表
【发布时间】:2020-05-26 06:45:43
【问题描述】:

我目前正在处理一个宏,它应该从一个工作表中选择一行应力数据并将其粘贴到另一个工作表的表格中,然后选择相应的应变数据(在下面的一行中找到)并粘贴它在同一张桌子上。

工作表 ImportTXT 中数据的初始起始位置始终相同(第 51 行),工作表 ExtractData 中的表应始终位于相同位置同样,粘贴总是从“D8:I8”开始。我想写它以便它运行直到有空白单元格(所以直到最后,无论有多少行应力和应变),因为数据的长度可以范围(单元格引用(即“直到第 122 行" 将不存在;不会总是固定数量)。

到目前为止我的重复代码:

Sub CutCopyPasteData()
    Worksheets("ImportTXT").Range("B51:G51").Copy Worksheets("ExtractData").Range("D8:I8")
    Worksheets("ImportTXT").Range("D52:G52").Copy Worksheets("ExtractData").Range("J8:M8")

    Worksheets("ImportTXT").Range("B53:G53").Copy Worksheets("ExtractData").Range("D9:I9")
    Worksheets("ImportTXT").Range("D54:G54").Copy Worksheets("ExtractData").Range("J9:M9")

    Worksheets("ImportTXT").Range("B55:G55").Copy Worksheets("ExtractData").Range("D10:I10")
    Worksheets("ImportTXT").Range("D56:G56").Copy Worksheets("ExtractData").Range("J10:M10")
End Sub

这些只是前三行,但是您可以看到“Bx:Gx”和“Dx:Gx”增加了 2,“Dx:Ix”和“Jx:Mx”增加了 1。

组织形式的数据图像:

An image of the table output with first three rows

如果有任何 for 循环或 do until 循环可以动态更新单元格引用并复制所有数据,那么这将是我的目标。谢谢。

【问题讨论】:

  • @Tim Williams 的回复非常有效。谢谢!

标签: excel vba


【解决方案1】:

试试这个:

Sub CutCopyPasteData()

    Dim rngImp1 As Range, rngImp2 As Range, rngDest As Range

    Set rngImp1 = Worksheets("ImportTXT").Range("B51:G51")
    Set rngImp2 = Worksheets("ImportTXT").Range("D52:G52")
    Set rngDest = Worksheets("ExtractData").Rows(8)

    Do While Application.CountA(rngImp1) > 0

        rngImp1.Copy rngDest.Range("D1") 'the 1 is relative to the row...
        rngImp2.Copy rngDest.Range("J1")

        Set rngImp1 = rngImp1.Offset(2, 0) 'move down 2 rows
        Set rngImp2 = rngImp2.Offset(2, 0)
        Set rngDest = rngDest.Offset(1, 0) 'move down 1 row
    Loop
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多