繁体   English   中英

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

[英]Random element from array in Excel-VBA

我已经冲进互联网,仍然没有找到这个问题的任何解决方案:

我有一个这样的数组;

Dim PayRate As Variant
PayRate = Array(10, 20, 30)

Cells(i, "E").value = PayRate(Int((2 - 1 + 1) * Rnd + 1))

但这只会给我 20 和 30 来自数组(元素 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

我喜欢这个,因为它与数组中元素的数量无关,或者它是从零开始还是从一开始。

Dim PayRate As Variant

PayRate = Array(10, 20, 30)
indexnumber= Int(Rnd()*3
Cells(i, "E").value = PayRate(indexnumber)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM