Kombination aller Datenkombinationen aus 8, 9 und 10 Spalten in Excel

601
Ben

Ich versuche herauszufinden, wie alle möglichen Kombinationen für Daten in 8, 9 und 10 Spalten (jeweils auf verschiedenen Seiten) ausgeführt werden können, und ich hätte gerne ein Makro für jede.

Nachfolgend finden Sie ein Makro für drei Spalten, auf das ich im Forum gestoßen bin (Kombination aller Daten aus drei Spalten in Excel).

Ich würde ein Makro vorziehen, das ich universell für eine beliebige Anzahl von Spalten verwenden kann, aber ich weiß nicht, ob dies möglich ist. Mein Verständnis von VBA ist sehr begrenzt. Ich weiß nicht wirklich, wie man Codes schreibt, ich schneide einfach Dinge aus, von denen ich denke, dass sie effektiv sind, und nimmt Änderungen vor, wenn sie einfach genug erscheinen.

Vielen Dank für jedes konstruktive Feedback!

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
Nun, das ist ein sehr langsames Makro, scheint aber die Arbeit zu erledigen. Sie könnten jedoch in der Tat eine weitere Ebene abstrahieren, die eine beliebige Anzahl von Spalten umfasst. Natürlich wird die Zeit zum Ausführen des Makros exponentiell wachsen. Sie müssen jedoch entscheiden, wie Sie die Spalten auswählen. Möchten Sie den zu bearbeitenden Bereich auswählen oder einige "Ersatzzellen" für die Eingabe der Start- und Endspalte verwenden? Julian Knight vor 8 Jahren 0
Was ist mit den anderen Lösungen in diesem Thread? http://stackoverflow.com/questions/19780016/vba-write-all-possible-combinations-of-4-columnsof-data Raystafarian vor 8 Jahren 1

0 Antworten auf die Frage