我有 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
必須啟用巨集才能使其工作!