2012-03-16 20 views
22

Mã bên dưới là VBA cho Excel. Tôi đang sử dụng trình soạn thảo Visual Basic đi kèm với Excel 2007."Trong khi .. End While" không hoạt động trong VBA?

Dim counter As Integer 
counter = 1 
While counter < 20 
    counter = counter + 1 
end while '<- the compiler is complaining about this statement 

Mã không biên dịch. Phía trên mã tôi chỉ có khai báo. Theo MSDN điều này sẽ hoạt động nhưng không. Chuyện gì xảy ra vậy?

+4

Trong số hai câu trả lời cho đến nay ('Do While/Loop' và' While/Wend'), tôi khuyên bạn nên chọn tùy chọn 'Do While' vì lý do đơn giản là bạn có thể thoát khỏi vòng lặp này nếu cần thiết với 'Exit Do' chức năng. – mattboy

Trả lời

50

While cấu trúc được chấm dứt không bằng End While nhưng với Wend.

While counter < 20 
    counter = counter + 1 
Wend 

Lưu ý rằng thông tin này có sẵn trong tài liệu; chỉ cần nhấn F1. Các giao dịch page you link to với Visual Basic .NET, không phải VBA. Trong khi (không có ý định chơi chữ) có một mức độ chồng chéo nào đó trong cú pháp giữa VBA và VB.NET, người ta không thể giả định rằng tài liệu hướng dẫn có thể được áp dụng trực tiếp cho người khác.

Cũng trong tập tin trợ giúp VBA:

Mẹo Tuyên bố Do...Loop cung cấp một cách có cấu trúc hơn và linh hoạt để thực hiện vòng lặp.

+0

Cảm ơn lời khuyên của bạn. Tôi phải nói rằng nó là một chút khó hiểu để có hai ngôn ngữ khác nhau, ba thực sự, với gần như cùng tên và gần như cùng một tuyên bố. – Gorgen

+2

Chắc chắn, nhưng bạn không cần phải ghi nhớ tất cả: trợ giúp chỉ là một F1 đi ... –

13

VBAkhông VB/VB.NET

Các tham chiếu chính xác để sử dụng là Do..Loop Statement (VBA). Xem thêm bài viết Excel VBA For, Do While, and Do Until. Một cách để viết những dòng này là:

Do While counter < 20 
    counter = counter + 1 
Loop 

(Nhưng một For..Next có thể thích hợp hơn ở đây.)

Chúc mừng mã hóa.

+1

+1 Tôi sẽ đi 'Cho .. Tiếp theo'. Nó cũng cho phép thoát ra 'Exit For' – Fionnuala

+0

@Fionnuala, bạn cũng có thể thoát khỏi' Do While..Loop' cũng bằng cách sử dụng 'Exit Do'. Tôi không chắc chắn nếu bạn có thể thoát khỏi một 'Trong khi .. Wend' mặc dù. –

Các vấn đề liên quan