将工作表合并成一个
我有几个风格的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”。 我希望这是你所需要的。