代码之家  ›  专栏  ›  技术社区  ›  agustin Vraj Patel

VBA Excel-生成实数随机数,检查给定范围内是否存在结果

  •  0
  • agustin Vraj Patel  · 技术社区  · 6 年前

    我使用以下函数创建随机数并检查结果整数是否在给定范围内:

    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…)。

    对我来说非常重要的是,每次我创建随机数,结果都是随机的。你有什么线索吗?

    0 回复  |  直到 6 年前