合并多个表

合并多个表

我有几个这样的表格:

Table A                               Table B
Col Aa    Col Ba     Col Ca         Col Ab   Col Bb   Col Cb   Col Db
  1        Ab1         Ac1            1        Bb1      Bc1      Bd1
  2        Ab2         Ac2            3        Bb3      Bc3      Bd3
  4        Ab4         Ac4            3        Bb3'     Bc3'     Bd3'

我想要一个这样的结果表

Col X       Col Y         Col Z
  1          Ab1           Ac1
  2          Ab2           Ac2
  4          Ab4           Ac4
  1          Bb1           Bd1
  3          Bb3           Bd3'
  3          Bb3'          Bd3'

它基本上是添加多个表的所有行,但手动决定每个表应添加哪些列,并决定表 A 中的哪一列与表 B 的哪一列相匹配,以及在最终表的哪一列中相匹配(以及不添加哪些列)

我想我可以只进行复制粘贴,但我宁愿不这样做。如有必要,我还可以更改每个表中的名称列。,, Col Ba = Col Y等等,但我还是不想这样做。Col Ca = Col ZCol Db = Col Z

我正在使用 Excel 2016。使用关系不起作用,因为显然,每列的数据必须是唯一的(无重复)

答案1

当具有相同结构时,您可以使用此代码来合并数据范围。

Sub MergeData()

Dim i As Integer
Dim xTCount As Variant
Dim xWs As Worksheet
On Error Resume Next LInput:
xTCount = Application.InputBox( "The number of title rows" , "", "1" )

If TypeName(xTCount) = "Boolean" Then Exit Sub
If Not IsNumeric(xTCount) Then
MsgBox "Only can enter number" 
GoTo LInput
End If
Set xWs = ActiveWorkbook.Worksheets.Add(Sheets(1))
xWs.Name = "Merge Data"

Worksheets(2).Range( "A1" ).EntireRow.Copy Destination:=xWs.Range( "A1" )

For i = 2 To Worksheets.Count
Worksheets(i).Range( "A1" ).CurrentRegion.Offset( CInt(xTCount), 0).Copy _
Destination:=xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1)
Next
End Sub 

相关内容