3

我有一些风格的 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

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

4

2 回答 2

0

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

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”。我希望那是你所需要的。

于 2013-06-11T09:02:54.823 回答
0

请使用 RDBMerge 插件,它将组合来自不同工作表的数据并为您创建一个主表。请参阅以下链接了解更多详情。

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

下载 RDBMerge

于 2013-06-10T18:55:32.590 回答