Kết hợp tất cả các kết hợp dữ liệu từ 8, 9 và 10 cột trong excel


0

Tôi đang cố gắng tìm ra cách chạy tất cả các kết hợp có thể cho dữ liệu trong 8, 9 và 10 cột (mỗi cột trên các trang khác nhau) và rất thích có một macro cho mỗi kết hợp.

Dưới đây là một macro cho ba cột mà tôi đã chạy trong diễn đàn. (Kết hợp tất cả các kết hợp dữ liệu từ ba cột trong excel)

Tôi muốn một macro mà tôi có thể sử dụng phổ biến cho bất kỳ số lượng cột nào nhưng tôi không biết nếu điều này là có thể. Hiểu biết của tôi về VBA rất hạn chế. Tôi thực sự không biết cách viết mã, tôi chỉ cắt và dán những thứ tôi nghĩ sẽ hiệu quả và sửa đổi nếu chúng có vẻ dễ dàng.

Cảm ơn cho bất kỳ thông tin phản hồi mang tính xây dựng!

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

Vâng, đó là một macro rất chậm nhưng dường như để hoàn thành công việc. Tuy nhiên, bạn thực sự có thể trừu tượng hóa nó một lớp nữa để bao gồm bất kỳ số lượng cột nào. Tất nhiên, thời gian để chạy macro sẽ tăng theo cấp số nhân. Bạn cần phải quyết định mặc dù bạn sẽ chọn các cột như thế nào. Bạn có muốn chọn phạm vi để xử lý hoặc bạn muốn sử dụng một số ô "dự phòng" để nhập cột bắt đầu và kết thúc?
Julian Knight

1
Còn các giải pháp khác trong chủ đề đó thì sao? stackoverflow.com/questions/19780016/ cấp
Raystafarian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.