我正在尝试从短列表中随机选择值,求它们,然后多次迭代该过程。到目前为止,我认为我成功地产生了价值观:
Work so far
0.4855981 0 0 FALSE
Price 0.337666609 0 0 FALSE
1 $29.74 0.808816075 0 0 FALSE
2 $0.85 0.906751484 0 0 FALSE
3 $38.24 0.10572928 1 4 17
4 $17 0.957321497 0 0 FALSE
5 $25.50 0.644195743 0 0 FALSE
6 $18.70 0.133302328 0 0 FALSE
7 $29.75 0.907771163 0 0 FALSE
8 $14.45 0.156311546 0 0 FALSE
9 $30.60 0.871958447 0 0 FALSE
10 $26.34 0.0790938 1 14 24.65
11 $11.05 0.696383544 0 0 FALSE
12 $124.95 0.080728462 1 3 38.24
13 $9.35 0.03717127 1 10 26.34
14 $24.65 0.970430159 0 0 FALSE
15 $41.65 0.814402286 0 0 FALSE
0.462967917 0 0 FALSE
0.646432058 0 0 FALSE
0.49384003 0 0 FALSE
0.381349746 0 0 FALSE
0.129594937 0 0 FALSE
0.576582174 0 0 FALSE
0.37483142 0 0 FALSE
Total 106.23
在任何一组中,有24次尝试从价目表中选择一个项目。我所做的是随机生成一个数字,如果它小于0.125(每次尝试从价格表中获得一个值的1/8),那么我生成1到15之间的随机数,然后vlookup得到价格。
但是我想多次迭代这个过程,所以说出每次包含24次尝试的100次,我返回的平均值是多少。每次更新随机数时,我都找不到简单地将数字添加到自身的方法,而且我的VBA非常有限 - 我正在考虑一个有点按钮来刷新数字的循环。伪代码因为我对VBA知之甚少:
for 1=1:100
clickbutton() #to refresh
grandtotal=grandtotal+total
end
averagevalue=grandtotal/i
我知道这看起来很容易,但我没有运气搜索如何刷新点击按钮,或者这是否是最好的方式。谢谢!
答案 0 :(得分:0)
伪代码是一个很好的起点!如果您将工作表中的总单元格命名为“Total”,则应该可以运行以下内容,这是我对伪代码的看法:
noRuns = 100
grandTotal = 0
For i = 1 to noRuns
ActiveSheet.Calculate
grandTotal = grandTotal + Range("Total").Value
Next i
MsgBox "The average value is " & grandTotal / noRuns
如果这不起作用,请玩它并让我知道你是如何上场的。