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
我喜欢这个,因为它独立于数组中元素的数量,或者是基于零的还是基于一个的。