Sub MinimumCost()
Range("TotalCost_D").ClearContents
Range("MinimumCost").Value = 100000000
Dim i As Integer
Range("PurchasedVans_M").Formula = "=Randbetween(0,2)"
For i = 1 To 10000
Calculate
If Range("TotalCost").Value < Range("MinimumCost").Value Then
Range("MinimumCost").Value = Range("TotalCost").Value
Range("TotalCost_D") = Range("MinimumCost")
Range("PurchasedVans").Value = Range("PurchasedVans_M").Value
End If
Next i
End Sub
该代码旨在计算优化成本,然后将优化的面包车和成本数量超过仪表板。
问题是面包车的数量与优化成本结果不匹配。这意味着我使用购买结果的货车数来计算总成本,这与我之前获得的优化成本不相等。 是因为功能之间的随机无法修复? 有没有更好的方法来生成随机数? 你能检查我的代码并告诉我问题的原因吗?
亲切的问候
答案 0 :(得分:0)
如果您希望每次调用MinimumCost只计算一次,则将值替换为值:
Range("PurchasedVans_M").Value = Int(Rnd * 3)
Excel函数RandBetween(a,b)
等同于VBA Int(a + Rnd * (b - a + 1))
请注意,RandBetween(0,2)会返回 整数 0,1或2。
如果您想要 浮点 号码0 <= n < 2
,请使用Rnd * 2
。
a <= n < b
的更一般情况是a + Rnd * (b - a)