
根据本人的理解,vba中rnd,rnd()都可以用,有括号可以加一个数值参数。
当不用参数时,两者一样。
加参数,则改变默认的“种子数”了。
默认的种子数是什么,根据什么公式算出的随机数,在哪儿看过,对我不重要的。
希望能帮到您。
Sub Rndnum()
dim n as integer
dim t as range
set t = union(range("A1:A9") ,Range("D1:D9"),Range("A11"),Range("D11"))
for each cell in t
n = int(rnd()20+16)
cellvalue=range("E" & n)Value
next
end sub
这个应该是符合你的条件,看了你和楼上的互动,我推测你实际区域并不是像你提供的这样是连续区域,而应该是很多个不连续区域吧。用UNION就可以了,可以随便改区域。
这个问题的重点,是前一个,随机4个单元格,那么单元格不能重复,用字典方法最稳妥。随机生成大于等于1,小于等于10的数字循环4次即可。
上述循环中,加上随机0-100的整数,即然没说不能重复,那就简单了。
这个需要用VBA么?Excel函数就搞定了。
当然录制一个宏也没问题。
准备好数据,点击数据分析按钮,如图 *** 作。
我这准备的数据是5个,总概率是1(01,015,02,025,03),分别对应值(1,2,3,4,5)
数值与概率输入区域必须是两列,左边为值,右边为概率。
结果你就选个起始单元格输出吧。
下面是宏脚本
ApplicationRun "ATPVBAENXLAM!Random", ActiveSheetRange("$A$7"), 5, 1, _
7, , ActiveSheetRange("$A$1:$B$5")
RND函数的用法如下。格式:Rnd() 功能:求(0,1)之间的一个随机数 语法: Rnd[(number)] 如果number 的值是 Randomize 生成 小于0 ,每次都使用 number 作为随机数种子得到的相同结果。 大于0 ,以上一个随机数为种子产生下一个随机数。 等于0 ,产生与最近生成的随机数相同的随机数。 省略, 以上一个随机数为种子产生下一个随机数。 说明 Rnd 函数返回小于 1 但大于或等于 0 的值。 number 的值决定了 Rnd 生成随机数的方式。
以上就是关于excel vba中产生随机数代码是rnd还是rnd() 还是说两者都可以全部的内容,包括:excel vba中产生随机数代码是rnd还是rnd() 还是说两者都可以、Excel中VBA取固定数值随机数、如何用VBA程序实现在随机的单元格生成随机数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)