我想将每个工作表的第一行从工作簿A复制到新创建的工作簿(工作簿B)。并在工作簿B的第二个工作表中的第二行,依此类推,直到所有行都被复制。你能告诉我怎么做吗?
答案 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'即可下拉到下一行。