Excel 2003宏,用于复制新创建的工作簿中的行

时间:2010-07-01 12:48:17

标签: excel

我想将每个工作表的第一行从工作簿A复制到新创建的工作簿(工作簿B)。并在工作簿B的第二个工作表中的第二行,依此类推,直到所有行都被复制。你能告诉我怎么做吗?

1 个答案:

答案 0 :(得分:2)

这是您在Excel中使用“记录宏”功能时获得的代码。

Sub Macro1()
    Windows("Book1").Activate
    Sheets("Sheet1").Select
    Rows("1:1").Select
    Selection.Copy

    Windows("Book2").Activate
    Range("A1").Select
    ActiveSheet.Paste

    Windows("Book1").Activate
    Sheets("Sheet2").Select
    Rows("1:1").Select
    Selection.Copy

    Windows("Book2").Activate
    Range("A2").Select
    ActiveSheet.Paste
End Sub

我只对源中的两个工作表执行了此操作,因此目标中有两行。您可以看到需要执行的步骤。从这一点来看,很容易将这段代码转换成循环,并根据需要为多张工作表/行执行此操作。如果要对源工作簿中的所有工作表执行此操作,可以使用For each循环。

Dim sht As Worksheet
For Each sht In Worksheets
//do stuff
Next

当您选择目标工作簿中的下一行时,请不要使用绝对引用样式:

Range("A1").Select

使用Row,Column引用样式,然后使用计数器很容易增加行:

Cells(1,1).Select

然后只需递增第一个'1'即可下拉到下一行。