Sub GPE()
Dim N As Long, Tmin As Long, Tmax As Long, Xi As Long, Arr(1 To 1048576, 1 To 6) As Long
Dim i As Long, i1 As Long, i2 As Long, i3 As Long, i4 As Long, i5 As Long, i6 As Long
ActiveSheet.UsedRange.Clear
Tmin = 80
Tmax = 90
N = 100
Xi = Int((Tmax - 15) / 6)
For i1 = 1 To IIf(Xi < N - 5, Xi, N - 5)
Xi = Int((Tmax - i1 - 10) / 5)
For i2 = i1 + 1 To IIf(Xi < N - 4, Xi, N - 4)
Xi = Int((Tmax - i1 - i2 - 6) / 4)
For i3 = i2 + 1 To IIf(Xi < N - 3, Xi, N - 3)
Xi = Int((Tmax - i1 - i2 - i3 - 3) / 3)
For i4 = i3 + 1 To IIf(Xi < N - 2, Xi, N - 2)
Xi = Int((Tmax - i1 - i2 - i3 - i4 - 1) / 2)
For i5 = i4 + 1 To IIf(Xi < N - 1, Xi, N - 1)
For i = 0 To Tmax - Tmin
i6 = Tmin - i1 - i2 - i3 - i4 - i5 + i
If i6 <= N And i6 > i5 Then
If k = 1048576 Then GoTo Thoat
k = k + 1
Arr(k, 1) = i1: Arr(k, 2) = i2
Arr(k, 3) = i3: Arr(k, 4) = i4
Arr(k, 5) = i5: Arr(k, 6) = i6
End If
Next i
Next
Next
Next
Next
Next
Thoat:
Range("A1").Resize(k, 6) = Arr
End Sub