我有 N 个表,每个表有 M 行。
例如我有两个表 A 和 B,分别有 4 行和 2 行:
表A
A1
A2
A3
A4
表 B
A1
A2
我想创建一个表 C,其中包含 4x2 条线并结合所有线的可能性:
表C
A1 B1
A1 B2
A2 B1
A2 B2
A3 B1
A3 B2
A4 B1
A4 B2
有没有办法用 Excel 实现这一点?如果有,怎么做?谢谢。
答案1
假设我们有两个列表,如下:
我们希望生成这两个列表的所有组合。运行此宏:
Sub generateCombinations()
Dim nA As Long, nB As Long, K As Long, i As Long, j As Long
Dim rc As Long
rc = Rows.Count
nA = Cells(rc, "A").End(xlUp).Row
nB = Cells(rc, "B").End(xlUp).Row
K = 1
For i = 1 To nB
vb = Cells(i, "B").Value
For j = 1 To nA
Cells(K, "C").Value = vb & " " & Cells(j, "A").Value
K = K + 1
Next j
Next i
End Sub
将在列中产生C:
宏的安装和使用非常容易:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件另存为.xlsm而不是.xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 中的宏:
- ALT-F8
- 选择宏
- 触摸运行
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其工作!