如何设计一个excel随机函数,生成1-31之间的随机整数,但剔除一些特定整数,而且保证不重复

2024-11-16 00:35:36
推荐回答(3个)
回答(1):

用VBA代码如下慎败(不会重复,不会出现特定数10):

Sub rnd()

Dim a As Integer, b As Integer, c As Integer

T1:

a = Application.RandBetween(1, 31)

b = Application.RandBetween(1, 31)

c = Application.RandBetween(1, 31)

If Application.Or(a = b, a = c, b = c,a=10,b=10,c=10) Then

    GoTo T1

End If

Range("a1") = a

Range("b1") = b

Range("c1") = c

End Sub

效配态果如下(若图片没有显示动宽卖颤画,请点一下图片)

回答(2):

结果返回几个数?又是彩票专业户啊?

回答(3):

用VBA定义一个函数(在判雹模块级中编写代码):

Function RndNum()
Do
RndNum = Int(Rnd() * 31) + 1
Loop Until RndNum <> 10 And RndNum <> 20 '假设不要10和20
End Function

然后在单元格中输入公式:=RndNum()
这样启乱每次回车一次出来的数值都是随机的,范围在1~31,且不会出现10和20。

如果要保证不重复,则有点麻烦,得把生成过的随机数记录下来,然掘旁帆后生成随机数时再去判断是否生成过。
这部分代码就提示到这吧。