Các cấu trúc lập trình trong VBA liên quan tới vòng lặp khá đa dạng. Ngoài cấu trúc For… Next, For Each… Next, chúng ta còn có cấu trúc Do Loop. Vậy cách viết vòng lặp Do Loop trong VBA như thế nào? Chúng ta hãy cùng Học Excel Online tìm hiểu qua bài viết này nhé.
Xem nhanh
Khi tìm hiểu về cấu trúc vòng lặp For… Next và For Each… Next trong VBA, chúng ta thấy 2 dạng vòng lặp này hầu như đề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 cụ thể.
Nhưng trong thực tế không phải lúc nào số lần vòng lặp cũng biết trước. Ví dụ như việc 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.
Có 2 cách viết cú pháp như sau:
Cách 1: Điều kiện ở đầu vòng lặp
Do { While | 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 { While | Until } Điều kiện
Trong đó:
* Lưu ý:
Trong phần này, Học Excel Online sẽ mô tả cụ thể 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”.
Ví dụ như sau:
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, và bấm vào Shape Xác nhận để xác nhận thông tin đăng nhập.
Bảng thứ 2: Danh sách tài khoản
Tại đây gồm các thông tin UserName và 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 và Password
Nếu đăng nhập đúng theo cả UserName và Password tương ứng thì xác 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:
Các bạn có thể bấm vào mục “View raw” để copy đoạn copy về 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, chúng ta không thể biết rõ có bao nhiêu lần đăng nhập, mà chỉ biết khi nào đăng nhập chính xác. Khi đăng nhập chính xác sẽ kết thúc vòng lặp.
Do đó sử dụng vòng lặp Do While… Loop để xác định khi 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ẽ xử lý bằng cấu trúc If… Then… End If
Các bạn có ví dụ 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é.
Ngoài ra bạn có thể tham khảo 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