我有几个这样的表格:
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 Z
Col 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