Я пытаюсь выяснить, как запустить все возможные комбинации для данных в 8, 9 и 10 столбцах (каждый на разных страницах) и хотел бы иметь макрос для каждого.

Ниже приведен макрос для трех столбцов, с которыми я столкнулся на форуме.(Объединение всех комбинаций данных из трех столбцов в Excel)

Я бы предпочел один макрос, который я могу использовать универсально для любого количества столбцов, но я не знаю, возможно ли это. Мое понимание VBA очень ограничено. Я действительно не знаю, как писать коды, я просто вырезал и вставлял вещи, которые, по моему мнению, были бы эффективными, и вносил изменения, если они кажутся достаточно простыми.

Спасибо за любые конструктивные отзывы!

Sub combinations()

Dim c1() As Variant
Dim c2() As Variant
Dim c3() As Variant
Dim out() As Variant
Dim j, k, l, m As Long


Dim col1 As Range
Dim col2 As Range
Dim col3 As Range
Dim out1 As Range


Set col1 = Range("A1", Range("A1").End(xlDown))
Set col2 = Range("B1", Range("B1").End(xlDown))
Set col3 = Range("C1", Range("C1").End(xlDown))

c1 = col1
c2 = col2
c3 = col3

Set out1 = Range("E2", Range("G2").Offset(UBound(c1) * UBound(c2) * UBound(c3)))
out = out1

j = 1
k = 1
l = 1
m = 1


Do While j <= UBound(c1)
    Do While k <= UBound(c2)
        Do While l <= UBound(c3)
            out(m, 1) = c1(j, 1)
            out(m, 2) = c2(k, 1)
            out(m, 3) = c3(l, 1)
            m = m + 1
            l = l + 1
        Loop
        l = 1
        k = k + 1
    Loop
    k = 1
    j = j + 1
Loop


out1.Value = out
End Sub

0