Thế nào là vòng lặp For thường VD: Ta sẽ xem xét VD dưới đây để hiểu hơn về dạng vòng lặp For này.
Vòng lặp là việc bạn cho thực hiện đi thực hiện lại một thao tác theo số lần được cho trước. Khi thực hiện vòng lặp, người lập trình thường sử dụng kèm theo các biến số để nạp hoặc kiểm tra một điều kiện nào đó theo yêu cầu.
VD: Bạn có 100 ô với mỗi ô dữ liệu khác nhau, bạn muốn kiểm tra xem trong các ô này có bao nhiêu ô
có dữ liệu "A". Lúc này, bạn sẽ thực hiện vòng lặp hết tất cả các ô và đếm xem có bao nhiêu ô có dữ liệu "A". Hiểu đơn giản, Các hàm tổng hợp CountIf, Sumif.. Cũng là một dạng vòng lặp.
Có 3 dạng vòng lặp được dùng chủ yếu trong VBA.
Cấu trúc vòng lặp này như sau
For {Tên biến} = {Số bắt đầu} to {Số kết thúc}
Step {Số bước nhảy}
'//Code gì đó của bạn
Next [Tên biến]
Đây là bảng dữ liệu ta có trong Sheet1
, ta sẽ thực hiện đếm có bao nhiêu số 3 trong vùng dữ liệu này bằng vòng lặp For
Và đây là kết quả
Ưu điểm
- Dễ sử dụng, dùng trong nhiều trường hợp
- Vòng lặp ngắt quãng giữa các đối tượng dễ dàng
Nhược điểm
- Vòng lặp dễ bị sót dữ liệu nếu lập trình không tốt
For Each
Tương tự như For thường, thay vì thực hiện vòng lặp từ số bắt đầu đến số kết thúc thì For Each sẽ thực hiện vòng lặp qua các thành phần trong đối tượng khai báo.
Cấu trúc For Each như sau
For Each {Tên biến} In {Đối tượng}
'//Code gì đó của
bạn
Next [Tên biến]
- {Tên biến}: là tên biến cần thực hiện vòng lặp. cần trùng kiểu dữ liệu với {Đối tượng}
- {Đối tượng}: Đối tượng cần thực hiện vòng lặp.
- [Tên biến]: Có hay không đều được.
VD: Vẫn như VD ở trên nhưng lần này ta thực hiện bằng vòng lặp For
Each
Và ta vẫn có kết quả tương tự
Ưu điểm
- Thược hiện vòng lặp qua tất cả các thành phần trong đối tượng mà không sợ bị sót thành phần.
- Tuỳ biến được nhiều trường hợp
Nhược điểm
- Code khó hơn For thường một chút
- không phù hợp khi thực hiện với mảng nhiều chiều
- Đối với vòng lặp chỉ duyệt qua một số thành phần trong đối tượng thì không nên dùng.
Do Loop
Vòng lặp sẽ thực hiện đến khi nào điều kiện được cho trước thoả mãn hoặc không thoả mãn tuỳ thuộc vào cách lập trình.
Cấu
trúc cơ bản
Do
'Code của bạn
Loop {While | Ulti} {Điều kiện}
Hoặc
Do {While | Ulti} {Điều kiện}
'Code của bạn
Loop
- {While | Ulti}: Mặc định là Ulti, Ulti: Vòng lặp thực hiện đến khi thoả mản {Điều kiện}, While: vòng lặp thực hiện đến khi không thoả mãn {Điều kiện}
- {Điều kiện}: Là điều kiện để thực hiện vòng lặp
VD: Vẫn lấy VD trên, nhưng ta thực hiện bằng vòng lặp Do Loop
Tương
tự kết quả
Ưu điểm
- Nếu cần vòng lặp dạng kiểm tra điều kiện thì Do Loop cho thao tác nhanh, không cần phải nhiều dòng code.
Nhược điểm
- Dễ bị treo nếu vòng lặp không có điểm dừng
- Khó dùng hơn For
Tổng kết
Các bạn có thể tải file demo về
Mỗi vòng lặp điều có ưu nhược điểm riêng, bạn nên cân nhắc từng trường hợp cụ thể để sử dụng cho phù hợp. Bạn có hiểu hết vòng lặp chưa?, cho mình biết bên dưới nhé.
Chỉnh sửa lần cuối: 15/09/2021