VBA在Excel序列中复制多行并粘贴到不同的Excel工作表

时间:2015-07-21 18:46:12

标签: excel vba excel-vba

我在论坛上发现了一些信息但我无法理解。我需要按顺序将特定行(范围)从一个Excel工作表复制到新工作表以进行数据绘制。有人可以用这个视觉基本代码帮助我吗?

我的数据如下:http://imgur.com/1vM12xD

我需要做的是将A1-1:E1-1A1-2:E1-2数据并排组合,就像我希望D5:D9D19:D23并排一样。同样,E5:E9E19:E23并排。这些组合可以通过创建我希望的新表来完成。

然后我想我需要运行一个循环来合并A2-1A2-2数据。 A2数据从第32行开始。在整个电子表格中保留此间距。所以我认为应该能够通过一个循环来完成整个工作表。数据(行)之间有空格,所以我不确定如何告诉程序在整个工作表中运行。

sub copydata()

LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).row

For i = 8 To LastRow

Range(Cells(i, 1), Cells(i, 4)).Select
Selection.Copy

erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).row

ActiveSheet.Cells(erow, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.CutCopyMode = False
End If

Next i

End Sub

1 个答案:

答案 0 :(得分:1)

您可以在没有宏的情况下执行此操作。因此,如果你采用你展示的样本表的结构,我会创建新的表格并使用索引公式来提供你需要的值和你想要的顺序。因此,对于D列,我会有一个名为相应的新工作表。对于A列,我会列出部分样品名称(A1-,B1-等)。对于第1行,我会有其余的(1-5)。然后在单元格B2中输入此公式

=INDEX('Sheet1'!$D:$D,MATCH($A2 & B$1,'Sheet1'!$B:$B,0))

向下填写。应该得到你想要的。在其他工作表上,只需将INDEX公式的初始范围更改为相应的列。

我希望这会有所帮助。