Sub Combinate(Optional C& = 1, Optional P& = 1) For P = P To X(C) Y(C) = V(P) If C < K Then Combinate C + 1, P + 1 Else R = R + 1: W(R) = Y Next End Sub
Sub Demo1() Dim N& ActiveSheet.UsedRange.Clear V = [{"a","b","c","d","e"}] N = UBound(V): If N <= K Then Beep: Exit Sub ReDim W(1 To Evaluate("COMBIN(" & N & "," & K & ")")) R = 0 X = Evaluate("COLUMN(" & Cells(N - K + 1).Resize(, K).Address & ")") Combinate X = Evaluate("COLUMN(" & Cells(1).Resize(, K).Address & ")") [A1].Resize(R, K) = Application.Index(W, Evaluate("ROW(1:" & R & ")"), X) End Sub
► Do you like it ? ► ► So thanks to click on bottom left star icon « ★ Add Reputation » ! ◄ ◄
Bookmarks