|
发表于 2014-12-21 14:40
|
显示全部楼层
本楼为最佳答案
- Dim arr(1 To 4), brr(), k As Long, aa As String, m
- Sub demo()
- tms = Timer
- m = Split(Range("a2").Value, "-")
- ReDim brr(1 To WorksheetFunction.Combin(UBound(m) + 1, 4), 1 To 1)
- k = 1
- Call dg(0, 1)
- MsgBox Format(Timer - tms, "0.00000s ") & UBound(brr) & "个组合"
- Range("a6").Resize(UBound(brr), 1) = brr
- End Sub
- Sub dg(i As Long, t As Long)
- Dim j As Long, x As Long
- For j = i + 1 To 5 + t
- arr(t) = m(j - 1)
- aa = Join(arr, "-")
- If t = 4 Then
- brr(k, 1) = aa
- k = k + 1
- Else
- Call dg(j, t + 1)
- End If
- Next
- End Sub
复制代码 附件楼下
|
|