本帖最后由 1016373263 于 2020-2-26 22:22 编辑
Dim arr1(1 To 500, 1 To 2), k As Integer
Sub 两个数组合及之和()
Dim arr, sht As Worksheet
Set sht = Worksheets("sheet1")
k = 0
arr = sht.Range("a3", sht.[b3].End(xlDown))
Call zuhe(arr, LBound(arr), UBound(arr), "", 0, 0)
sht.[c13].Resize(UBound(arr1), 2) = arr1
End Sub
Sub zuhe(arr, l, r, str, z, gg)
If gg = 2 Then
k = k + 1
arr1(k, 1) = Application.Substitute(str, "+", "", 2)
arr1(k, 2) = z
Exit Sub
End If
If l < r + 1 Then
Call zuhe(arr, l + 1, r, str & arr(l, 1) & "+", z + arr(l, 2), gg + 1)
Call zuhe(arr, l + 1, r, str, z, gg)
End If
End Sub
|