我有 4 列,每列有不同數量的記錄。我想要一個由這 4 列組成的新表並獲得所有可能的組合。
我最初的四欄是:
A 列(段)有 10 筆記錄。 B 欄(BAA 部門)有 14 筆記錄。 C 列(終端)有 4 筆記錄。 D 欄(小時)有 24 筆記錄。
結果應該是一個 4 列表,包含 10*14*4*24 = 13440 行。
你能幫我在 Excel 中做到這一點嗎?如果每列中的記錄數相同,我知道該怎麼做。
答案1
您可以根據您的需求調整這個簡短的巨集:
Sub kombin()
Dim a As Long, b As Long, c As Long, d As Long
Dim pack(1 To 4) As Variant, K As Long
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
K = 1
For a = 2 To 11
pack(1) = s1.Cells(a, 1)
For b = 2 To 15
pack(2) = s1.Cells(b, 2)
For c = 2 To 5
pack(3) = s1.Cells(c, 3)
For d = 2 To 26
pack(4) = s1.Cells(d, 4)
s2.Range("A" & K & ":D" & K) = pack
K = K + 1
Next d
Next c
Next b
Next a
End Sub