我想将每个工作表的第一行从工作簿A复制到新创建的工作簿(工作簿B)。以及工作簿B的第二工作表中的第二行,依此类推,直到复制完所有行。你能告诉我怎么做吗?
发布于 2010-07-01 23:46:54
这是在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‘递增到下一行。
https://stackoverflow.com/questions/3157899
复制相似问题