Saia de um loop While ... Wend

107

Estou usando um loop While ... Wend do VBA.

Dim count as Integer

While True
    count=count+1

    If count = 10 Then
        ''What should be the statement to break the While...Wend loop? 
        ''Break or Exit While not working
    EndIf
Wend

Não quero usar uma condição como `While count <= 10 ... Wend

Priyank Thakkar
fonte

Respostas:

176

Um While/ Wendloop só pode ser encerrado prematuramente com um GOTOou saindo de um bloco externo ( Exit sub/ functionou outro loop exitable)

Em Dovez disso, mude para um loop:

Do While True
    count = count + 1

    If count = 10 Then
        Exit Do
    End If
Loop

Ou para repetir um determinado número de vezes:

for count = 1 to 10
   msgbox count
next

( Exit Forpode ser usado acima para sair prematuramente)

Alex K.
fonte
-1

Outra opção seria definir uma variável de sinalizador como um Booleane, em seguida, alterar esse valor com base em seus critérios.

Dim count as Integer 
Dim flag as Boolean

flag = True

While flag
    count = count + 1 

    If count = 10 Then
        'Set the flag to false         '
        flag = false
    End If 
Wend
Sam Martin
fonte
-1

A melhor maneira é usar uma Andcláusula em sua Whiledeclaração

Dim count as Integer
count =0
While True And count <= 10
    count=count+1
    Debug.Print(count)
Wend
Deseosuho
fonte