Есть выборка от 1 до 62. Нужно из этой выборки записать в строку случайным образом, без повторений, некое количество n значений. Количество строк и количество значений n нужно задавать через InputBox.
Sub random()
Dim a(63), k, i, sluch As Integer
For i = 1 To 62
If i > 0 Then a(i) = i
Next
For i = 1 To 15
sluch = Int(Rnd() * (62) + 1)
k = a(i): a(i) = a(sluch): a(sluch) = k
Next
For i = 1 To 15
Cells(i, 1) = a(i)
Next
End Sub
kolevchuk написал: Как записать данные не в столбец, а в строку?
Код
Sub random()
Const n As Long = 62 'случайные числа от 1 до n
Const m As Long = 10 'кол-во случайных чисел - m
Dim i As Long, j As Long, a() As Long
ReDim a(1 To n) As Long
Randomize
For i = 1 To n
j = Int(Rnd() * i + 1)
If j <> i Then a(i) = a(j)
a(j) = i
Next i
Cells(1, 1).Resize(, m) = a
End Sub
Sub random()
[a1:o1000000].Clear
n = Val(InputBox("Верхний предел выборки"))
m = Val(InputBox("Количество генерируемых чисел"))
Dim i As Long, j As Long, a() As Long, b As Long
ReDim a(1 To n) As Long
Randomize
For b = 1 To 1000000
For i = 1 To n
j = Int(Rnd() * i + 1)
If j <> i Then a(i) = a(j)
a(j) = i
Next i
Cells(b, 1).Resize(, m) = a
Next b
End Sub