Vòng lặp for trong excel

-

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ạovò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 tochuchoinghi.netđi tìm câu trả lời ngay nhé.

Bạn đang xem: Vòng lặp for trong excel

Tuyệt đỉnh VBA -Viết code trong tầm tay

Giới thiệu về vòng lặp VBA

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

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ác cấu trúc vòng lặp VBA

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.

Cấu trúc Do...Loop trong vòng lặp VBA

Cách viết cấu trúc Do...Loop trong vòng lặp VBA

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ách 1: Viết điều kiện ở đầu vòng lặp VBA

Cấu trúc code VBA Excel có dạng như sau:

Do Until Điều kiện LoopCách 2: Viết điều kiện ở cuối vòng lặp VBACấu trúc code VBA Excel có dạng như sau:

Do Loop Until Điều kiệnTrong cả 2 cách, chúng ta viết các từ khóa và dòng lệnh sau:

Từ khóaDo(bắt buộc): Bắtđầu vòng lặp Do.Từ khóaWhile(bắt buộc nếu 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).Từ khóaUntil(bắt buộc nếu 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: Đóng vai trò cấu trúc so sánh mà kết quả của phép so sánhđó luôn trả về giá trịĐúng (TRUE) hoặc Sai (FALSE).Câu lệnh thực thi: Thực thi một hànhđộng hoặctrả về kết quả theoý muốn trongtừng vị trí tươngứng của cấu trúc.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ù thỏa mãnđiều kiện trướcđó, thườngđặt sau câu lệnh thực thi.ExitDo(không bắt buộc): Thoát vòng lặp tại vị tríđượcđặt từ khóa này, thườngđặt sau câu lệnh thực thi.Từ khóa Loop(bắt buộc): Kết thúc cấu trúc vòng lặp Do.

Xem thêm: Download Goldwave Full Crack Mới Nhất 2015, Download Goldwave 5

Một số lưu ý khi viết cấu trúc Do...Loop trong vòng lặp VBA

Khi tạo vòng lặp VBA Excel, chúng ta cần lưu ý một số điểm sau đây:

Tuyệt đối không sử dụngđồng thờiWhile và Until trong cùng một cấu trúc vòng lặpCấu trúcđiều kiệnởđầu vòng lặp có thể khiến vòng lặp không chạy lần nào.Cấu trúcđiều kiệnở cuối vòng lặp sẽ khiến vòng lặp luôn chạyít nhất một lần.Vì vòng lặp Do…Loop là dạng vòng lặp không xácđịnh cụ thể số lần lặp, dođó dễ xảy ra vòng lặp vô tận (không cóđiểm dừng). Để xác định điểm dừng cho vòng lặp, chúng ta có thể sử dụng cấu trúcIF tại vị trí đặt lệnhExit Do. Ngoài ra, các bạn có thể bấm liên tục phím Esc trên bàn phím để dừng vòng lặp VBA.

Ứng dụng cấu trúc Do...Loop trong vòng lặp VBA

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:

Bảng đăng nhập: Nhập tên và mật khẩu vào các ô B3 và B6 tương ứng, sau đó nhấn nút Xác nhận.Bảng danh sách tài khoản: Chứa thông tin tên và mật khẩu hợp lệ cho bảng đăng nhập.

Điều kiện đặt ra trong đề bài cụ thể là:

Nếu đăng nhập đúng cả hai thông tin thì hệ thống xác nhận "Đăng nhập chính xác".Nếu đăng nhập thiếu một trong hai thông tin thì hệ thống sẽ yêu cầu nhập lại đầy đủ cả tên và mật khẩu đăng nhập.

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 StringDim password As String username = Sheets("Sheet1").Range("B3").Value password = Sheets("Sheet1").Range("B6").ValueDim i As Integer i = 3If username = "" Or password = "" Then MsgBox "Vui long nhap day du thong tin"Else Do While Sheets("Sheet1").Range("E" & i).Value "" And i 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 IfEnd 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.

Tổng kết

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 tochuchoinghi.net và đăng ký khóa học Tuyệt đỉnh VBA với chúng mình nhé.

tochuchoinghi.net chúc các bạn thành công!

Tham khảo các bài viết khác về chủ đề VBA Excel tại đây:Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA