需要10个随机数,总和为100,每个数在90和110的范围内
目前使用
Sub a()
Range("b2:b11") = ""
For i = 2 To 10
Do Until WorksheetFunction.CountIf(Range("b:b"), Range("b" & i)) = 1 _
And [b1] - WorksheetFunction.Sum(Range("b2:b" & i)) >= [E2] * (11 - i) _
And [b1] - WorksheetFunction.Sum(Range("b2:b" & i)) <= [E3] * (11 - i)
Range("b" & i) = Int(Rnd() * ([E3] - [E2])) + [E2]
Loop
Next i
[b11] = [b1] - WorksheetFunction.Sum(Range("b2:b10"))
End Sub
但运行非常容易就导致excel 无法响应,求助
目前使用
Sub a()
Range("b2:b11") = ""
For i = 2 To 10
Do Until WorksheetFunction.CountIf(Range("b:b"), Range("b" & i)) = 1 _
And [b1] - WorksheetFunction.Sum(Range("b2:b" & i)) >= [E2] * (11 - i) _
And [b1] - WorksheetFunction.Sum(Range("b2:b" & i)) <= [E3] * (11 - i)
Range("b" & i) = Int(Rnd() * ([E3] - [E2])) + [E2]
Loop
Next i
[b11] = [b1] - WorksheetFunction.Sum(Range("b2:b10"))
End Sub
但运行非常容易就导致excel 无法响应,求助