我试图计算1000名司机一年内发生事故的次数,司机发生事故的概率为1%。
我在获得以下代码方面获得了帮助:
Public Function AccidentGenerator(N As Long) As Long
Application.Volatile
Dim i As Long
Randomize
For i = 1 To N
AccidentGenerator = AccidentGenerator + Int(Rnd() + 0.01)
Next i
End Function
但是,我希望能够更改工作簿中的概率 - 即使上面代码中的0.01引用我工作簿中的单元格。任何帮助将非常感谢
答案 0 :(得分:2)
另一个去:
Public Function AccidentGenerator(N As Long, epsilon As Double) As Long
Application.Volatile
Dim i As Long
Randomize
For i = 1 To N
AccidentGenerator = AccidentGenerator + Int(Rnd() + epsilon)
Next i
End Function
像:
答案 1 :(得分:0)
只需使用Evaluate()
函数或其替代语法[]
。
例如,如果单元格A1包含值0.01:
Debug.Print Evaluate("A1") ' prints 0.01
Debug.Print [A1] ' also prints 0.01
答案 2 :(得分:0)
或指向一个单元格如下:
Public Function AccidentGenerator(ByVal N As Long) As Long
Application.Volatile
Dim i As Long
Randomize
For i = 1 To N
AccidentGenerator = AccidentGenerator + Int(Rnd() + Worksheets("Sheet1").Range("A1"))
Next i
End Function
由
引用的sheet1中的单元格A1 Worksheets("Sheet1").Range("A1")
将包含0.01。显然,您可以更改单元格中的单元格/工作表/值。