我搜索了类似的问题,但找不到。
我想生成 10 组数字,范围从 1 到 60(包括 1 和 60),每组包含随机且不重复的数字。如何在 excel 中执行此操作?
答案1
如何使用它
- 打开 Excel 和 VBA 编辑器 ( Alt+ F11)
- 在下方插入代码
Sheet1
- 返回 Excel 并选择您想要的范围用随机和非重复的数字填充
- 执行宏 ( Alt+ F8)
Sub randomNumbers()
Low = Application.InputBox("Enter first valid value", Type:=1)
High = Application.InputBox("Enter last valid value", Type:=1)
Selection.Clear
For Each cell In Selection.Cells
If WorksheetFunction.CountA(Selection) = (High - Low + 1) Then Exit For
Do
rndNumber = Int((High - Low + 1) * Rnd() + Low)
Loop Until Selection.Cells.Find(rndNumber, LookIn:=xlValues, lookat:=xlWhole) Is Nothing
cell.Value = rndNumber
Next
End Sub
我非常喜欢这些小而简单的解决方案
答案2
我以为我找到了答案,但这是一个死胡同(但很有趣),我不知道如何消除它。我需要的是做随机设置的宾果游戏表。
创建一个 A4:A63 列,其中包含 1 到 60 的数字。在 B1 单元格中输入一个小于 60 的相当大的质数。例如“47”。
在 B2 中输入
=RANDBETWEEN(1;59)
在 B4:B63 行中填写
=MOD(((A4+B$2)*B$1);60)+1
=MOD(((A5+B$2)*B$1);60)+1
...
=MOD(((A63+B$2)*B$1);60)+1
这将产生一个相当随机的序列。B$2 只会移动序列。