我想创建一个基本上会根据用户输入返回随机数的宏,但是,我希望每个输出都是唯一的(这就是为什么randbetween()
函数不起作用为了这)。以下是我到目前为止,但我不断收到参考错误。我已经从我在网上找到的几个不同的例子中拼接出了这些代码,所以我们也会以任何方式进行优化。创建生成唯一随机数的Excel VBA宏
代码:
Sub RandomSample()
Dim cell As Range
Dim rng As Range
Low = 1
High = Application.InputBox("Enter population total", Type:=1)
Sample = Application.InputBox("Enter the Sample Size", Type:=8)
Set rng = Application.Range(ActiveCell, ActiveCell.Offset(Sample, 0))
For Each cell In rng.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
错误窗口: Error image
这看起来像它应该现在的工作。 – Jeeped
@Jeeped - 错过了,谢谢指出,答案更新。 – Mrig
您可能还想查看有关类型的其他答案:=错误。 –