VBA Excel - 需要复制范围,将其粘贴到列中然后循环

时间:2017-05-04 00:57:42

标签: excel vba excel-vba

所以我有一长串的单词,需要将前30个左右的副本复制并粘贴到另一个工作表的列中,然后将下一个30中的30个粘贴到下一列等等。 我记录了宏的开始,但不知道如何在不单独写出每个位的情况下完成整个操作。

Sub asdasd()

'
    Range("A2:A29").Select
    Selection.Copy
    Sheets("COMMON WORDS").Select
    Range("AG2").Select
    ActiveSheet.Paste
    Sheets("COMMON - SINGLE LIST").Select
    Range("A30").Select
    Range("A30,A57").Select
    Range("A57").Activate
    Range("A30:A57").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("COMMON WORDS").Select
    Range("AH2").Select
    ActiveSheet.Paste
End Sub

提前致谢!

1 个答案:

答案 0 :(得分:2)

Sub LoopCopy()

    Dim rngCopy As Range, rngPaste As Range

    Set rngCopy = Sheets("COMMON - SINGLE LIST").Range("A2:A29")
    Set rngPaste = Sheets("COMMON WORDS").Range("AG2")

    'copy while there's data in rngCopy...
    Do while application.counta(rngCopy) > 0
        rngCopy.copy rngPaste
        set rngCopy = rngCopy.offset(rngCopy.rows.count, 0) '<< move copy range           
        set rngPaste = rngPaste.offset(0, 1) '<< move paste postion over
    Loop

 End Sub