Здесь у меня есть фрагмент кода, который должен генерировать случайные числа от 5 до 50 в диапазоне A2: C24, но по какой-то причине это не работает, также мне нужно, чтобы он отображал и окрашивал разными цветами заполненные ячейки и частоту элемента из ячейки C3.
Sub Random()
Dim Numbers(5 To 50) As Variant
Dim i As Long, j As Long, k As Long
For k = 5 To 50
Numbers(k) = k
Next k
Call Shuffle(Numbers)
k = 1
For Each r In Range("A2:C24")
r.Value = Numbers(k)
k = k + 1
Next r
End Sub
Sub Shuffle(InOut() As Variant)
Dim HowMany As Long, i As Long, j As Long
Dim tempF As Double, temp As Variant
Hi = UBound(InOut)
Low = LBound(InOut)
ReDim Helper(Low To Hi) As Double
Randomize
For i = Low To Hi
Helper(i) = Rnd
Next i
j = (Hi - Low + 1) \ 2
Do While j > 0
For i = Low To Hi - j
If Helper(i) > Helper(i + j) Then
tempF = Helper(i)
Helper(i) = Helper(i + j)
Helper(i + j) = tempF
temp = InOut(i)
InOut(i) = InOut(i + j)
InOut(i + j) = temp
End If
Next i
For i = Hi - j To Low Step -1
If Helper(i) > Helper(i + j) Then
tempF = Helper(i)
Helper(i) = Helper(i + j)
Helper(i + j) = tempF
temp = InOut(i)
InOut(i) = InOut(i + j)
InOut(i + j) = temp
End If
Next i
j = j \ 2
Loop
End Sub