我使用以下函数创建随机数并检查结果整数是否在给定范围内:
Function RandBetweenInt(Lowest As Long, Highest As Long, Exclude As Range) As Long
Dim R As Long
Dim C As Range
Do
R = Lowest + Int(Rnd() * (Highest + 1 - Lowest))
For Each C In Exclude
If R = C Then Exit For
Next C
Loop Until C Is Nothing
RandBetweenInt = R
Application.Volatile
End Function
调用函数后
RandBetweenInt(0, 999, tgt.Range("K1:K1000"))
结果是正确的,但是我看到如果我关闭文件并再次打开它,得到的数字总是相同的(f.I 705),因此不会发生真正的随机生成。即使我创建连续的随机数,序列似乎总是相同的(705332107…)。
对我来说非常重要的是,每次我创建随机数,结果都是随机的。你有什么线索吗?