- Actions: chứa danh sỏch cỏc lệnh của mỗi nhúm.
3. Cấu trỳc FO R NEXT
For… Next là một cấu trỳc lặp biết trước số lần lặp trong VBA, tuy nhiờn trong những tỡnh huống đặc biệt, vẫn cú thể sử dụng cấu trỳc này như cấu trỳc khụng biết trước được số lần lặp.
For <biến chạy> = <giỏ trị 1> To <giỏ trị 2> [Step <n>] <thủ tục>
[Exit For] Next
Trong đú:
- <biến chạy> là biến kiểu vụ hướng đếm được, hay dựng nhất là biến kiểu nguyờn;
- <giỏ trị 1>, <giỏ trị 2> là cỏc giỏ trị mà biến chạy sẽ nhận và thực hiện dịch chuyển sau mỗi lần lặp. Cú thể dịch chuyển đi 1 đơn vị, cú thể dịch chuyển đi nhiều đơn vị một lần, cú thể dịch chuyển tiến, cũng cú thể dịch chuyển lựi- tất cả điều này tuỳ thuộc vào việc cú hay khụng cú tuỳ chọn [Step <n>];
- Nếu cú tuỳ chọn [Step <n>] biến chạy sẽ dịch n đơn vị sau mỗi lần lặp. Khi đú, nếu n>0 dẽ dịch tiến, ngược lại sẽ dịch lựi;
- Mỗi lần lặp, VBA sẽ thực hiện <thủ tục> một lần;
- Trong trường hợp đặc biệt nếu gặp phải lệnh Exit For trong vũng lặp, ngay lập tức thoỏt khỏi lệnh lặp và thực hiện lệnh tiếp ngay sau từ khoỏ Next.
Chớnh Exit For đó làm mất đi tớnh lặp biết trước được số lần lặp của loại lệnh này. Tiếp theo là cỏc vớ dụ:
Vớ dụ 1: Tớnh tổng cỏc số từ 1 đến 50, giỏ trị được lưu vào biến tong.
Dim i As Byte Dim tong As Integer tong = 0
For i = 1 To 50 tong = tong +i Next
Msgbox tong
Vớ dụ 2: Tớnh tổng cỏc số chia hết cho 3 từ 1 đến 50, giỏ trị được lưu vào biến tong.
Dim i As Byte Dim tong As Integer tong = 0
For i = 3 To 50 Step 3 tong = tong +i Next
Msgbox tong
Lệnh For trong vớ dụ này chỉ khỏc lệnh For ở vớ dụ 1 ở chỗ Step 3. Vỡ <giỏ trị 1> = 3 là số chia hết cho 3, nờn tất cả cỏc giỏ trị i cũn lại sẽ chia hết cho 3 (vỡ i = i +3).
Dim so As Integer Dim uoc As Integer Dim nguyento As Boolean nguyento = True
For uoc = 2 To Int(so / 2) If so Mod uoc = 0 Then nguyento = False Exit For End If Next If nguyento Then Msgbox "là nguyờn tố" Else Msgbox "khụng là nguyờn tố !" End If
Giải thuật đơn giản để xỏc định một số cú phải nguyờn tố hay khụng là: xỏc định xem tất cả cỏc số (uoc) cú thể trở thành ước của số (so) cần kiểm tra. Nếu tỡm một ước thực sự đầu tiờn, kết luận ngay khụng phải số nguyờn tố bởi lệnh nguyento = False và thoỏt khỏi vũng lặp bằng lệnh Exit For; trong trường hợp xột toàn bộ cỏc ước cú thể mà khụng tỡm được một số nào là ước thực sự, kết luận đõy là số nguyờn tố (biến nguyento = True như giỏ trị ban đầu)