在EXCEL中,如何用函数完成7个不重复的随机整数

比如说,想在A1到G1生成7个大于等于1,且小于40的随机整数

可以用 =INT(RAND()*(40-1)+1) 来完成

但是这会使A1到G1里面有重复的数字出现,该如何设计,才能使前面出过的数不再出现?也就是全都不重复

第1个回答  2013-12-07
用函数很难实现,通过宏实现吧!
右击工具栏,选择“控件工具箱”,然后在工作表中画一个按钮,双击按钮输入以下代码:
Option Base 1
Const M As Integer = 40
Const N As Integer = 7
Private Sub CommandButton1_Click()
Dim i As Integer, a(M) As Integer, x As Integer
Do While i < N
x = Int(Rnd * (40 - 1) + 1)
If a(x) = 0 Then
a(x) = 1
i = i + 1
Cells(1, i) = x
End If
Loop
End Sub
然后在控件工具栏中选择“退出设计模式”,以后每次单击按钮,就可以在A1:G1产生不重复的数字。本回答被网友采纳
第2个回答  2013-12-07
为了使代码更具通用性(修改M的值可以改变数的范围),上述代码中
x = Int(Rnd * (40 - 1) + 1)
改为
x = Int(Rnd * (M - 1) + 1)
第3个回答  2013-12-07
EXCEL是什么呢?咋没听说过
相似回答
大家正在搜