Hướng dẫn cách viết vòng lặp Do Loop trong VBA

Các kết cấu lập trình trong VBA liên quan tới vòng lặp khá phong phú. Ngoài kết cấu For… Next, For Each… Next, tất cả chúng ta còn tồn tại kết cấu Do Loop. Vậy cách viết vòng lặp Do Loop trong VBA như vậy nào? Tất cả chúng ta hãy cùng Học Excel Online khám phá qua bài viết này nhé.

Cú pháp & mục đích của vòng lặp Do Loop trong lập trình VBA

Mục đích của vòng lặp Do Loop

Khi khám phá về kết cấu vòng lặp For… Next & For Each… Next trong VBA, tất cả chúng ta thấy 2 dạng vòng lặp này hầu hết đều biết trước số lần thực hiện vòng lặp, hay nói cách khác là số lần thực hiện vòng lặp sẽ được xác định rõ ràng.

Nhưng trong thực tiễn không phải bao giờ số lần vòng lặp cũng biết trước. Chẳng hạn như việc yêu cầu nhập đúng UserName & Password trong 1 form đăng nhập thì mới vào được chương trình.

Cách viết cú pháp Do Loop

Có 2 cách viết cú pháp như sau:

Cách 1: Điều kiện ở đầu vòng lặp

Do  Until  Điều kiện

[ Câu lệnh thực thi ]

[ Continue Do ]

[ Câu lệnh thực thi ]

[ Exit Do ]

[ Câu lệnh thực thi ]

Loop

Cách 2: Điều kiện ở cuối vòng lặp

Do

[ Câu lệnh thực thi ]

[ Continue Do ]

[ Câu lệnh thực thi ]

[ Exit Do ]

[ Câu lệnh thực thi ]

Loop  Until  Điều kiện

Trong đó:

  • Keyword

    Do

    (bắt buộc) : Để bắt đầu cho vòng lặp Do

  • Keyword 

    While

    (bắt buộc còn nếu như không dùng từ

    Until

    ): Lặp lại vòng lặp cho đến khi điều kiện sai (chỉ dừng lại khi điều kiện chuyển từ đúng sang sai)

  • Keyword 

    Until

     (bắt buộc còn nếu như không dùng từ

    While

    ): Lặp lại vòng lặp cho đến khi điều kiện thoả mãn.

  • Điều kiện: là 1 kết cấu so sánh mà kết quả của phép so sánh đó luôn trả về giá trị Đúng hoặc Sai
  • Câu lệnh thực thi : là các câu lệnh thực thi 1 hành động hoặc trả về kết quả theo ý mong muốn trong từng địa điểm tương ứng của kết cấu.
  • Continue Do

     (không bắt buộc) : tiếp tục thực hiện vòng lặp Do mà không thoát dù đáp ứng điều kiện trước đó, thường đặt sau câu lệnh thực thi.

  • Exit Do

    (không bắt buộc) : thoát vòng lặp tại địa điểm được đặt keyword này, thường đặt sau câu lệnh thực thi.

  • Loop

     (bắt buộc) : keyword để chấm dứt kết cấu vòng lặp Do

* Lưu ý:

  • Không sử dụng cùng lúc While & Until trong cùng 1 kết cấu. Nếu đã dùng While thì không dùng Until & trái lại.
  • Kết cấu điều kiện ở đầu vòng lặp có thể khiến vòng lặp không chạy dù chỉ 1 lần.
  • Kết cấu điều kiện ở cuối vòng lặp thì vòng lặp luôn chạy tối thiểu 1 lần.
  • Có thể lồng ghép các kết cấu vòng lặp khác, kết cấu IF vào địa điểm câu lệnh thực thi để lập trình những trường hợp vòng lặp cầu kỳ.
  • Do vòng lặp Do… Loop là dạng vòng lặp không xác định rõ ràng số lần lặp, do đó dễ xảy ra vòng lặp bất tận (không có điểm dừng). Do đó cần xác định 1 số điểm dừng cho vòng lặp (bằng kết cấu IF, địa điểm đặt lệnh Exit Do). Trong trường hợp xảy ra vòng lặp bất tận, các bạn có thể bấm liên tục phím ESC trên keyboard để ngừng vòng lặp này.

Chẳng hạn áp dụng của vòng lặp Do Loop trong thực tiễn

Trong phần này, Học Excel Online sẽ miêu tả rõ ràng yêu cầu “nhập đúng UserName và Password trong 1 form đăng nhập thì mới vào được chương trình”.

Chẳng hạn như sau:

Tất cả chúng ta có 2 bảng gồm:

Bảng thứ 1: Bảng đăng nhập.

Tại đây người dùng sẽ phải nhập UserName vào ô B3, Password vào ô B6, & nhấn vào Shape Công nhận để công nhận thông tin đăng nhập.

Bảng thứ 2: Mục lục account

Tại đây gồm các thông tin UserName & Password hợp lệ mà người dùng được phép sử dụng.

Nếu đăng nhập thiếu thông tin sẽ báo lỗi yêu cầu phải nhập đủ thông tin trong cả 2 ô UserName & Password

Nếu đăng nhập đúng theo cả UserName & Password tương ứng thì công nhận là “Đăng nhập đúng”.

Còn chỉ cần sai 1 trong 2 yếu tố thì sẽ là “Đăng nhập sai”

Câu lệnh lập trình trong VBA cho việc “Xác nhận” như sau:

Lượt xem the code on Gist.

Các bạn có thể nhấn vào mục “View raw” để sao chép đoạn sao chép về & sử dụng trong VBA Excel. File Excel mẫu có thể tải về tại địa chỉ: http://bit.ly/2NaI04g

Trong trường hợp này, tất cả chúng ta chẳng thể biết rõ có bao nhiêu lần đăng nhập, mà chỉ biết lúc nào đăng nhập đúng đắn. Khi đăng nhập đúng đắn sẽ chấm dứt vòng lặp.

Do đó sử dụng vòng lặp Do While… Loop để xác định lúc nào đăng nhập đúng.

Còn những trường hợp khác đều là đăng nhập sai hoặc thiếu thông tin sẽ giải quyết bằng kết cấu If… Then… End If

Các bạn có chẳng hạn nào về trường hợp sử dụng vòng lặp Do… Loop không? Hãy chia sẻ với Học Excel Online nhé.

không chỉ thế bạn có thể đọc thêm các bài viết sau:

Hướng dẫn cách viết code với đối tượng Workbook trong VBA Excel

Hướng dẫn cách viết code với đối tượng Worksheet trong VBA Excel

Hướng dẫn cách viết code với đối tượng Range trong VBA Excel

Xem Thêm  PHP: Variable scope - pdo trong php

Viết một bình luận