将工作表合并成一个

我有几个风格的Excel工作表

组织1


姓名职业

克里斯 – 收缩

简 – 员工


组织2


姓名职业

鲍勃 – 设施

Trey – 软件开发人员


并希望将这些工作表合并到格式为主的工作表中

组织名称职业

1 – 克里斯 – 收缩

1 – 简 – 员工

2 – 鲍勃 – 设施

2 – Trey – 软件开发人员

使用VBA我能够使用所有的数据到一个工作表

NumSheets = Worksheets.Count Worksheets(1).Select Sheets.Add ActiveSheet.Name = "All" For X = 1 To NumSheets Worksheets(X + 1).Select curAgency = ActiveSheet.Name NumRows = ActiveSheet.UsedRange.Rows.Count Rows("5:" & NumRows).Select Selection.Copy Worksheets("All").Select ActiveSheet.Range("B1").Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select Worksheets(X + 1).Select Range("A1").Select Next X Worksheets("All").Select Range("A1").Select End Sub 

但我不确定如何插入列并将组织名称追加到主列表上的每个组。

请使用RDBMerge加载项,它将组合不同工作表中的数据并为您创build主表。 请参阅下面的链接了解更多详情。

http://duggisjobstechnicalstuff.blogspot.in/2013/03/how-to-merge-all-excel-worksheets-with.html

下载RDBMerge

我不知道我是否理解你的问题,但这可能有帮助:

 Sub MergeAll() Dim r As Long, ws As Worksheet, rAll As Long, wsAll As Worksheet Dim i As Long Worksheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.name = "All" Set wsAll = ActiveSheet rAll = 2 For Each ws In Worksheets If ws.name <> "All" Then r = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row For i = 1 To r wsAll.Cells(rAll, 1) = ws.name wsAll.Cells(rAll, 2) = ws.Cells(i, 1) wsAll.Cells(rAll, 3) = ws.Cells(i, 2) rAll = rAll + 1 Next i End If Next ws End Sub 

我猜,有一个Excel文件与多个工作表。 每张表代表一个组织。 所以makro将穿过每张纸张(名称为“All”的纸张除外),并将纸张的数据写入“All”。 我希望这是你所需要的。