Вы можете использовать функцию рабочего листа RandBetween. Он будет генерировать число от 1 до 10 и использовать его для выбора ячейки в диапазоне A1:A10
. В приведенном ниже примере используется кнопка команды ActiveX на листе.
Option Explicit
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets("Sheet1").Range("A1:A10") '<==change to your sheet with data and button
.ClearFormats
.Cells(Application.WorksheetFunction.RandBetween(1, 10)).Interior.Color = vbRed
End With
End Sub
Если вы хотите воспользоваться Randomize
, для установки начальных значений, вы можете использовать следующую перезапись. Источник функции: wellsr.com (незначительная адаптация от меня).
Option Explicit
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets("Sheet1").Range("A1:A10")
.ClearFormats
.Cells(RndBetween(1, 10)).Interior.Color = vbRed
End With
End Sub
Public Function RndBetween(ByVal Low, ByVal High) As Integer
Randomize
RndBetween = Int((High - Low + 1) * Rnd + Low)
End Function