Do
Value_Sum = 0
For w = 1 To (組數 - 1)
Value = Rnd * (上限 - 下限) + 下限
Value_Sum = Value_Sum + Value
Range("G" & w) = Value
Next
殘值 = 平均值 * 組數 - Value_Sum
循環次數 = 循環次數 + 1
Loop Until 殘值 >= 下限 And 殘值 <= 上限
Range("G" & w) = 殘值
Debug.Print 循環次數 End Sub作者: jackyq 時間: 2018-2-14 13:28
本帖最後由 jackyq 於 2018-2-14 13:32 編輯
Sub 最小循環___________________()
平均值 = [A2]
上限 = [B2]
下限 = [C2]
組數 = [D2]
Randomize
For w = 1 To (組數 - 1)
Value = Rnd * (上限 - 下限) + 下限
Value_Sum = Value_Sum + Value
Range("G" & w) = Value
Next
Value = 平均值 * 組數 - Value_Sum
If Value < 下限 Then
殘值 = Value - 下限
Value = 下限
End If
If Value > 上限 Then
殘值 = Value - 上限
Value = 上限
End If
Range("G" & w) = Value
If 殘值 = 0 Then Exit Sub
Do
For w = 1 To 組數
value_try = Range("G" & w) + (殘值 / 組數)
If value_try >= 下限 And value_try <= 上限 Then
Range("G" & w) = value_try
alls = alls + 1
If alls >= 組數 Then Exit Do
End If
Next
Loop