|
- Dim arr(1 To 5), brr(), re, k As Long, aa As String, n, a, b
- Sub demo()
- tms = Timer
- a = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
- b = Val(InputBox("请输入和是多少?(如10)"))
- re = Range("a1:a35")
- ReDim brr(1 To WorksheetFunction.Combin(a, 5), 1 To 1)
- k = 1
- Call dg(0, 1)
- MsgBox Format(Timer - tms, "0.000s ")
- Range("c1").Resize(k, 1) = brr
- End Sub
- Sub dg(i As Long, t As Long)
- Dim j As Long, m As Long
- For j = i + 1 To a - 5 + t
- arr(t) = re(j, 1)
- n = n + arr(t)
- aa = Join(arr, ",")
- If t = 5 Then
- If n = b Then
- brr(k, 1) = aa
- k = k + 1
- End If
- Else
- Call dg(j, t + 1)
- End If
- n = n - arr(t)
- Next
- End Sub
复制代码 楼主试试
|
|