Excel-VBA中的数组中的随机元素

我冲进了互联网,仍然没有find任何解决这个问题的方法:

我有一个这样的数组;

Dim PayRate As Variant PayRate = Array(10, 20, 30) Cells(i, "E").value = PayRate(Int((2 - 1 + 1) * Rnd + 1)) 

但这只会给我20和30arrays(元素1和2),我也想元素0 = 10在混合? 我该怎么做呢?

这将做到这一点: Int(Rnd() * 3) + 1

Rnd()返回一个从0开始的均匀分布的随机数,不包括1。

重要提示 :您必须在模块的顶部有Option Base 1 ,这样您的PayRate数组才有最低限度为1的值。看起来好像给出了您的问题文本。

考虑:

 Sub dural() Dim PayRate As Variant PayRate = Array(10, 20, 30) i = 1 N = Application.WorksheetFunction.RandBetween(LBound(PayRate), UBound(PayRate)) Cells(i, "E").Value = PayRate(N) End Sub 

我喜欢这个,因为它独立于数组中元素的数量,或者是基于零的还是基于一个的。