Trong bài viết ngày hôm nay, chúng mình sẽ học cách viết cấu trúc Do...Loop để tạo vòng lặp VBA. Cấu trúc này được sử dụng với mục đích gì? Làm thế nào để viết lệnh VBA Excel chuẩn xác? Hãy cùng Gitiho đi tìm câu trả lời ngay nhé.
Thành thạo Do…Loop nhờ Tuyệt đỉnh VBA - Viết code trong tầm tay
XEM NHANH BÀI VIẾT
Vòng lặp VBA giúp người dùng tự động lặp lại một dải code nhiều lần cho đến một mức kết quả nhất định hoặc thỏa mãn điều kiện đề ra. Điều này giúp chúng ta tiết kiệm thời gian viết code VBA Excel thủ công và dài dòng. Có thể nói đây là một trong những công cụ VBA Excel mạnh nhất ở thời điểm hiện tại.
Có 3 loại vòng lặp VBA cho phép người dùng tự động hóa công việc trên Excel. Chúng ta có thể chọn bất kì loại nào để sử dụng trong từng trường hợp cụ thể.
Do Until Loop: Lặp lại code VBA Excel cho đến một mức kết quả nhất định hoặc giá trị trả về là Đúng (TRUE).
Do While Loop: Tiếp tục lặp lại code VBA Excel ngay cả khi đã đạt được kết quả nhất định hoặc giá trị trả về là Đúng (TRUE).
For Loop: Lặp lại code VBA Excel với một số lần nhất định.
Trong phần này, chúng ta sẽ tìm hiểu 2 cách viết câu trúc Do...Loop trong vòng lặp VBA.
Cấu trúc code VBA Excel có dạng như sau:
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ấu trúc code VBA Excel có dạng như sau:
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 cả 2 cách, chúng ta viết các từ khóa và dòng lệnh sau:
Khi tạo vòng lặp VBA Excel, chúng ta cần lưu ý một số điểm sau đây:
Xem thêm: Hướng dẫn từng bước cách viết Macro trong VBA Excel
Giả sử chúng ta thiết lập file Excel có chức năng yêu cầu người dùng nhập đúng tên (UserName) và mật khẩu (Password) trong bảng đăng nhập để truy cập được tài liệu. Đây là một phương pháp bảo vệ file Excel hiệu quả bên cạnh công cụ mật khẩu cài sẵn trên phần mềm.
Chúng ta có hai bảng như sau:
Điều kiện đặt ra trong đề bài cụ thể là:
Như vậy, câu lệnh vòng lặp VBA Excel cho quy trình xác nhận này được viết với cấu trúc Do...Loop như sau:
Sub Login_confirm()
Dim username As String
Dim password As String
username = Sheets("Sheet1").Range("B3").Value
password = Sheets("Sheet1").Range("B6").Value
Dim i As Integer
i = 3
If username = "" Or password = "" Then
MsgBox "Vui long nhap day du thong tin"
Else
Do While Sheets("Sheet1").Range("E" & i).Value <> "" And i < 5
If username = Sheets("Sheet1").Range("E" & i).Value And _
password = Sheets("Sheet1").Range("F" & i).Value Then
MsgBox "Dang nhap chinh xac"
Exit Sub
Else
i = i + 1
End If
Loop
MsgBox "Thong tin dang nhap khong chinh xac"
End If
End Sub
Với ví dụ này, chúng ta không thể nắm rõ số lần đăng nhập chính xác mà chỉ xác định được điều kiện đăng nhập mà thôi. Do vậy, chúng ta sẽ sử dụng cấu trúc Do...Loop trong vòng lặp VBA và kết thúc vòng lặp khi thực hiện đăng nhập chính xác. Ngoài ra, chúng ta sử dụng thêm cấu trúc If để xác định các trường hợp đăng nhập sai.
Qua bài viết này, chúng ta đã học cách viết cấu trúc Do...Loop chính xác trong vòng lặp VBA. Nếu bạn cần tìm hiểu các kiến thức VBA Excel để áp dụng vào công việc, hãy tham khảo các bài viết trên blog Gitiho và đăng ký khóa học Tuyệt đỉnh VBA với chúng mình nhé.
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!