Thoát khỏi vòng lặp While… Wend


107

Tôi đang sử dụng vòng lặp While ... Wend của 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

Tôi không muốn sử dụng điều kiện như `Trong khi đếm <= 10 ... Wend

Câu trả lời:


176

Vòng lặp A While/ Wendchỉ có thể được thoát sớm với một GOTOhoặc bằng cách thoát khỏi một khối bên ngoài ( Exit sub/ functionhoặc một vòng lặp khả dụng khác)

Thay đổi thành một Dovòng lặp để thay thế:

Do While True
    count = count + 1

    If count = 10 Then
        Exit Do
    End If
Loop

Hoặc để lặp lại một số lần đã đặt:

for count = 1 to 10
   msgbox count
next

( Exit Forcó thể được sử dụng ở trên để thoát sớm)


-1

Một tùy chọn khác sẽ là đặt một biến cờ là a Booleanvà sau đó thay đổi giá trị đó dựa trên tiêu chí của bạn.

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

Cách tốt nhất là sử dụng một Andmệnh đề trong Whilecâu lệnh của bạn

Dim count as Integer
count =0
While True And count <= 10
    count=count+1
    Debug.Print(count)
Wend
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.