我尝试创建一个数组并用唯一值填充它。 由于检查值是否唯一,我无法创建基本的“每个”过程。 我只想创建一个唯一的随机数,将其放入一个数组中,创建另一个唯一的随机数,并将其放入同一个数组中。 如果没有搜索该主题并且没有谷歌那个问题,那么我必须在stackoverlofw询问社区。 p>
我没有任何有价值的代码,因为没有任何效果。
我只有一个谷歌代码,它在excel的单元格中为我工作,但不在数组中。
For Each Cell In Selection.Cells
Do
rndNumber = Int((High - Low + 1) * Rnd() + Low)
Loop Until Selection.Cells.Find(rndNumber, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing
Cell.Value = rndNumber
Next
希望
答案 0 :(得分:5)
Option Explicit
Function GetRandomsArray(ByVal n As Long, Low As Long, High As Long)
Dim rndNumber As Long
If High - Low + 1 < n Then n = High - Low + 1
With CreateObject("Scripting.Dictionary")
Do
rndNumber = Int((High - Low + 1) * Rnd() + Low)
.Item(rndNumber) = 1
Loop While .Count < n
GetRandomsArray = .Keys
End With
End Function
用于&#34; Main&#34;子如下:
Dim myArray As Variant
myArray = GetRandomsArray(5, 1, 10) '<--| get an array of 5 unique random numbers between 1 and 10