Нужно сгенерировать случайные целые положительные числа из заданного диапазона значений, чтобы получить заданную сумму. Есть число (сумма), его нужно разбить на случайные числа из указанного диапазона значений. Числа целые.\ Например, есть 1000, его нужно разбить на 20 чисел из диапазона от 10 до 100, чтобы в сумме всегда получалось 1000.
Sub gen()
Dim arr(1 To 20) As Integer, i As Integer, ir As Integer, ich As Integer
Randomize
Do
For i = 1 To 19
arr(i) = Fix(90 * Rnd + 10)
ir = ir + arr(i)
Next
ich = 1000 - ir
If ich < 10 Or ich > 100 Then
Erase arr
ich = 0
ir = 0
Else
arr(20) = ich
Exit Do
End If
Loop
For i = 1 To 20
Cells(i, 8).Value = arr(i)
Next
End Sub
Shevchuk, 1. Используя СЛУЧМЕЖДУ генерируете 19 чисел заданного диапазона 2. 20-е число находите как разницу между 1000 и суммой сгенерированных в п.1 19 чисел. P.S. для ваших условий 20-е число всегда будет больше 100. Ну и 20-е число понятным образом не будет случайным.