![使用 Excel 显示包含常见值和不常见值的表格](https://linux22.com/image/1290672/%E4%BD%BF%E7%94%A8%20Excel%20%E6%98%BE%E7%A4%BA%E5%8C%85%E5%90%AB%E5%B8%B8%E8%A7%81%E5%80%BC%E5%92%8C%E4%B8%8D%E5%B8%B8%E8%A7%81%E5%80%BC%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我正在尝试将两个不同表格的行对齐到同一列中,以便缺失的行在每个表格上显示为空白行。例如,如果我有以下表格:
A 4 9 A 4 8
B 3 7 C 3 9
D 4 2 E 7 2
F 4 2 and F 1 3
并且我希望它向我显示在第一个字段上哪些列是通用的,哪些列不是,我的结果表应该是这样的:
A 4 9 A 4 8
B 3 7
C 3 9
D 4 2
E 7 2
F 4 2 and F 1 3
我如何使用 Excel 实现这一点?
特德
答案1
如果您的两个表格位于同一张表中,表格 1 从 A1 开始一直到 C 列(您的样本中为 C6),表格 2 从 E1 开始一直到 G 列(您的样本中为 g6),则此数组排序代码会将您设计的输出转储到从 I1 开始的新表格中
韋斯
Sub LineEmStackEm()
Dim X
Dim Y
Dim Z
Dim lngRow As Long
Dim lngCol As Long
Dim lngCnt As Long
Dim lngMiss As Long
X = Range([a1], Cells(Rows.Count, "c").End(xlUp))
Y = Range([e1], Cells(Rows.Count, "g").End(xlUp))
ReDim Z(1 To 2 * UBound(Y, 1), 1 To 6)
For lngRow = 1 To UBound(Y)
For lngCnt = 1 To UBound(X, 2)
Z(lngRow + lngMiss, lngCnt) = X(lngRow, lngCnt)
Next
If X(lngRow, 1) <> Y(lngRow, 1) Then lngMiss = lngMiss + 1
For lngCnt = 1 To UBound(Y, 2)
Z(lngRow + lngMiss, lngCnt + UBound(X, 2)) = Y(lngRow, lngCnt)
Next
Next lngRow
[I1].Resize(UBound(Z, 1), UBound(Z, 2)) = Z
End Sub