vba更现实的随机数发生器

时间:2009-07-23 20:20:56

标签: vba random

我知道我可以使用一个名为Rnd的准随机数生成函数/变量。但是,我注意到每当我在用户表单中使用Rnd时,这个数字序列总会显示出来:

第一次迭代:0.705547511577606 第二次迭代:0.533424019813538 ...

因此,每次重新启动用户窗体时,b / c显示的数字序列都是相同的,它不会感觉随机。 VBA功能集中是否还有其他功能会让它感觉更随机?提前谢谢。

3 个答案:

答案 0 :(得分:10)

在对Randomize Timer进行任何调用之前,请尝试向Rnd添加一个电话。这将使用一天中的时间为随机数生成器播种。

答案 1 :(得分:2)

我对VB知之甚少,但我认为你需要种子你的数字生成器。我认为Randomize是为VB做的。

答案 2 :(得分:0)

您可以根据一天中的时间手动设置种子...在您的vba代码顶部插入类似的内容:

For i = 0 To (CInt(Format(Time, "ms"))) 'minutes and seconds turned to integer
        test_random = Rnd()
    Next