Option Explicit
Sub test()
Dim i&, j&, dr(), er(), vResult(), r&
ReDim dr(1 To 5)
For j = 1 To UBound(dr): dr(j) = j: Next
r = 0
ReDim er(1 To 2)
ReDim vResult(1 To WorksheetFunction.Combin(UBound(dr), 2), 1 To 2)
combinArr dr, er, vResult, 2
[A1].CurrentRegion.Clear
With [A1].Resize(UBound(vResult), 2)
.Value = vResult
.EntireColumn.AutoFit
End With
End Sub
Function combinArr(ByRef ar(), ByRef br(), ByRef cr(), ByVal n&, Optional _
ByRef iGroup&, Optional ByVal iStart&, Optional ByVal iNum& = 1)
Dim i&, j&
For i = iStart + 1 To UBound(ar) - n + iNum
If iNum < n Then
br(iNum) = ar(i)
Call combinArr(ar, br, cr, n, iGroup, i, iNum + 1)
Else
br(iNum) = ar(i)
iGroup = iGroup + 1
For j = 1 To n
cr(iGroup, j) = br(j)
Next
End If
Next
End Function
|