Может быть, OP хочет сделать что-то подобное
Sub Test()
Dim Rng1 As Range, Rng2 As Range, sngCell As Range
Dim eq As Long, i As Long
Application.ScreenUpdating = False
Set Rng1 = Range("A1:A3")
Set Rng2 = Range("B1:B3")
Rng2.Value = "=RANDBETWEEN(1,10)"
eq = 0
Do
eq = 0
Rng2.Calculate
For Each sngCell In Rng1
If sngCell.Value = sngCell.Offset(0, 1).Value Then
eq = eq + 1
End If
Next
i = i + 1
If i > 10000 Then Exit Do ' Just to avoid an endless loop
Loop Until eq = 3
Debug.Print "Loops: " & i
End Sub
Просто поместите вручную несколько целых чисел от 1 до 9 в A1: A3, а код поместит несколько случайных чисел в B1: B3.Затем код повторяет помещение случайных целых чисел в B1: B3 до тех пор, пока мы не получим те же числа, что и в A1: A3.Я понятия не имею, для чего это хорошо :-) Возможно, OP хочет протестировать некоторые вероятностные функции, такие как случайная величина или ожидаемое значение (извините, я не знаю правильных английских терминов для этого).
Здесьверсия с использованием массивов
Sub TestArray()
Dim v1(1 To 3) As Byte
Dim v2(1 To 3) As Byte
Dim eq As Byte
Dim i As Long, k As Long
v1(1) = 6
v1(2) = 4
v1(3) = 2
Do
eq = 0
For k = 1 To 3
v2(k) = WorksheetFunction.RandBetween(1, 10)
Next k
For k = 1 To 3
If v1(k) = v2(k) Then
eq = eq + 1
End If
Next k
i = i + 1
If i > 10000 Then Exit Do
Loop Until eq = 3
Debug.Print "Loops: " & i
End Sub