Wyrwij się z While… Wend loop


107

Używam pętli While ... Wend języka 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

Nie chcę używać warunku takiego jak `While count <= 10 ... Wend

Odpowiedzi:


176

While/ WendPętla może być zakończony dopiero przedwcześnie z GOTOlub wychodząc z zewnętrznego bloku ( Exit sub/ functionlub innego exitable pętli)

DoZamiast tego zmień na pętlę:

Do While True
    count = count + 1

    If count = 10 Then
        Exit Do
    End If
Loop

Lub do zapętlenia określoną liczbę razy:

for count = 1 to 10
   msgbox count
next

( Exit Formożna użyć powyżej, aby wyjść przedwcześnie)


-1

Inną opcją byłoby ustawienie zmiennej flag jako a, Booleana następnie zmiana tej wartości na podstawie kryteriów.

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

-1

Najlepszym sposobem jest użycie Andklauzuli w Whileoświadczeniu

Dim count as Integer
count =0
While True And count <= 10
    count=count+1
    Debug.Print(count)
Wend
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.