首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建复制/粘贴VBA循环

创建复制/粘贴VBA循环
EN

Stack Overflow用户
提问于 2019-08-22 05:23:51
回答 1查看 283关注 0票数 0

我在一个大型电子表格中有一个海量数据集(上千个值),我需要将这些值复制并粘贴到新工作表中,每组10个。基本上,我需要复制一列中的前10个单元格,并将它们粘贴到新工作表中各自的列中。然后,我需要对单元格11-20重复此操作,并将它们粘贴到新工作表中各自的列中。因此:复制1-10,粘贴到A列的新工作表中,然后复制11-20并粘贴到相同的新工作表,C列的21-30列,依此类推。

我已经尝试了一些基本的代码,我对此真的很陌生,但发现它很有趣。我已经知道如何复制10的范围并粘贴到新的工作表上,但我不知道如何设置循环,以便我可以继续这个过程,以增加10组的新列。我也尝试过录制宏,但它只是重新创建我输入的按键,这对我没有用处。

我写这篇文章是为了复制源列中的前10个,然后粘贴到新列中的新工作表中。

代码语言:javascript
运行
复制
Option Explicit
Sub CopyCells()
Worksheets("Sheet1").Range("A3:A12").Copy Worksheets("Sheet2").Range("B2:B11")
End Sub

我需要它循环并连续地从一个目标列中剪切并粘贴10个单元格的集合到新的工作表中,并将每组10个单元格粘贴到它们自己的新列中。如果你发了一个回复,能不能也加个解释?我真的很喜欢这些东西,并且正在努力学习,而不仅仅是复制粘贴一些代码。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-08-22 05:32:43

你可以这样做:

代码语言:javascript
运行
复制
Sub CopyCells()
    Const NUM_ROWS As Long = 10  'size of block to copy
    Dim rngCopy As range, col As Long

    Set rngCopy = Worksheets("Sheet1").Range("A3").Resize(NUM_ROWS, 1)
    col = 2
    'copy while rngCopy has any data
    Do While Application.Counta(rngCopy) > 0
        rngCopy.Copy Worksheets("Sheet2").Cells(2, col)
        col = col + 1                       'increment destination column
        Set rngCopy = rngCopy.Offset(NUM_ROWS, 0) 'move copy range down 10
    Loop

End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57599327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档