首页 > 解决方案 > Excel VBA在不同的工作表中堆叠列

问题描述

我有一个 Excel 工作簿,里面有 2 张纸。两张表都有可以改变长度(行数)的表格。我希望能够让 VBA 在 sheet1 中获取 table1 并将其与 sheet2 上的 table2 对齐。

这就是棘手的地方。列不对齐。例如,sheet1 中的“公司”可能在 E 列中。但是,在 sheet2 中,它在 V 列中。列中也有空白。就数据而言,这是可以的,但它会使到达表列的末尾变得更加困难。

我知道我需要列出每列的哪些列。在 sheet1 中有 36 列。在表 2 中有 49 个。这是完全可以接受的。

任何指导将不胜感激。手动执行此操作需要大量时间,我只是想加快速度。如果在 sheet3 上编译所有内容更容易,那很好。

这是我到目前为止所拥有的,但它不喜欢堆叠部分。

Sub Stacker()

'Select Full Report Sheet
Sheets("Full Report").Select

'Find Notes column and copy
Cells.find(What:="Notes", After:=Range("A1"), _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows).EntireColumn.Copy

'Select Secondary Report sheet, column E and paste
Sheets("Secondary Report").Select
Range("E1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub

谢谢

标签: vbaexcel

解决方案


我以前编写的代码可以让您将所有数据从单独的表中混合到一个表中,而不管列的顺序如何。见https://stackoverflow.com/a/47279374/2507160

我还建议尝试 PowerQuery 来做同样的事情。见https://stackoverflow.com/a/47170312/2507160


推荐阅读