То, что вы ищете, это петля Do-Loop Until
или Do While-Loop
.Этот вид цикла выполняется до тех пор, пока не будет выполнено условие.В вашем случае это условие будет «напечатано 20 сообщений».
Цикл Do While-Loop
проверяет условие при запуске, поэтому, если условие сначала равно False
, цикл не запустится.
Цикл Do-Loop Until
проверяет условие в конце, поэтому цикл будет выполняться как минимум один раз.
Пример кода, следующий за вашим предыдущим циклом For
:
Sub C7()
Dim b As Integer
Dim f As Single
Dim ret As String
dim count as Integer: count = 0
Do
f = Rnd() * 28
If f >= 26 And f <= 28 Then
ret = ret & Str(f)
count = count + 1
End If
Loop until count = 20
MsgBox ret
End Sub