@青水蛙鸣
Sub test()
Dim i As Integer
Cells(1, 1).Select
For i = 1 To 99
Call FindRest(i, 500, "")
Next i
End Sub
Sub FindRest(ByVal iStart As Integer, ByVal iTotal As Integer, ByVal sNum As String)
Dim i As Integer
If iStart > iTotal Then Exit Sub
sNum = sNum & "+" & iStart
If iStart = iTotal Then
Selection = sNum
Selection.Offset(1, 0).Select
Exit Sub
End If
For i = iStart To iTotal
Call FindRest(i + 1, iTotal - iStart, sNum)
Next i
End Sub
Sub test()
Dim i As Integer
Cells(1, 1).Select
For i = 1 To 99
Call FindRest(i, 500, "")
Next i
End Sub
Sub FindRest(ByVal iStart As Integer, ByVal iTotal As Integer, ByVal sNum As String)
Dim i As Integer
If iStart > iTotal Then Exit Sub
sNum = sNum & "+" & iStart
If iStart = iTotal Then
Selection = sNum
Selection.Offset(1, 0).Select
Exit Sub
End If
For i = iStart To iTotal
Call FindRest(i + 1, iTotal - iStart, sNum)
Next i
End Sub




