Vòng lặp trong VBA. Vòng lặp VBA với các đối số phủ định

Lệnh vòng lặp là một câu lệnh làm rõ tập lệnh nào (tập lệnh này được gọi là phần thân vòng lặp) phải được thực hiện lặp đi lặp lại và quy tắc để kết thúc vòng lặp là gì.

7.2.1. Chu trình tham số Cho... Tiếp theo

Vòng lặp này được điều khiển bởi một tham số, tham số này khi lặp lại việc thực thi phần thân vòng lặp sẽ thay đổi giá trị của nó theo một bước nhất định từ giá trị ban đầu nhất định đến giá trị cuối cùng nhất định. Một chu trình như vậy được sử dụng trong trường hợp biết trước cơ thể phải thực hiện bao nhiêu lần lặp lại.

Cú pháp vòng lặp: CPI=NZPC ĐẾN KZPC[ Bước chân SHIPTS] Thân vòng lặp (một hoặc nhiều hướng dẫn) Kế tiếp[CPI]

Từ (Vì), ĐẾN(trước), Bước chân(bước chân), Kế tiếp(sau đó) được bảo lưu.

Các ký hiệu được sử dụng:

CPI - tên của tham số chu trình (biến thuộc bất kỳ loại số nào);

NZPTS – giá trị ban đầu của tham số vòng lặp (biểu thức của bất kỳ loại số nào), mà tham số vòng lặp sẽ có khi phần thân vòng lặp được thực thi lần đầu tiên;

KZPTS – giá trị cuối cùng của tham số chu trình (biểu thức của bất kỳ loại số nào), so sánh với giá trị hiện tại của tham số chu trình;

CHIC – bước thay đổi tham số vòng lặp (biểu thức của bất kỳ loại số nào) – một phần tùy chọn của lệnh vòng lặp.

Các giá trị số của NZPC và KZPC chỉ định khoảng thời gian mà tham số chu kỳ sẽ thay đổi. Tham số tùy chọn SHIPC chỉ định bước thay đổi bộ đếm vòng lặp trên mỗi lượt. Theo mặc định, nếu nó vắng mặt, nó được coi là bằng 1. Cuối cùng, sau các lệnh tạo nên phần thân của vòng lặp, có một lệnh chỉ ra ranh giới của vòng lặp. Trong trường hợp các vòng lặp lồng nhau (thân vòng lặp bao gồm một lệnh vòng lặp), sẽ rất hữu ích khi chỉ ra lệnh thuộc về vòng lặp nào Kế tiếp. Điều này đạt được bằng cách thêm vào sau từ Kế tiếp tên tham số vòng lặp.

Quá trình thực hiện lệnh Kế tiếp cho một bước tích cực được minh họa trong Hình 7.4.

Hãy xem xét các ví dụ.

Trong ví dụ đầu tiên, chúng ta sẽ viết hướng dẫn tính tổng của tất cả các số nguyên lẻ từ 1 đến 100.

Dim I là số nguyên, tổng là số nguyên

Với i = 1 Đến 100 Bước 2

Số tiền = Số tiền +i

Ví dụ sau đây sẽ minh họa hai khả năng: bước vòng lặp rõ ràng và đếm ngược. Điều thứ hai đạt được bằng cách chỉ định bước âm và thực tế là giá trị ban đầu của tham số vòng lặp lớn hơn giá trị cuối cùng.

Dim N là số nguyên

Với N = 100 Đến 60 Bước –10

Mã này sẽ xuất ra ở dạng hiện tại:

Hướng dẫn sau đây khiến máy tính phát ra tiếng bíp 50 lần. Hướng dẫn định nghĩa rằng tham số vòng lặp là một biến x, giá trị ban đầu và giá trị cuối cùng của nó. Đội Kế tiếp thay đổi bộ đếm theo từng bước.

Dim x Là số nguyên

Hướng dẫn Cho tiếp theo có thể được kết thúc sớm bằng cách sử dụng câu lệnh Exit For. Việc thực hiện lệnh này sẽ khiến vòng lặp thoát ra ngay lập tức.

7.2.2. Hướng dẫn vòng lặp Do While...Loop hoặc Do...Loop While

Đây Trong khi(hiện tại) và Vòng(vòng lặp) từ dành riêng. Vòng lặp như Trong khiđược dành cho các tình huống trong đó số lần lặp lại của thân vòng lặp (các lần lặp) không được biết trước. Đây là cú pháp của hai loại vòng lặp Trong khi:

Làm trong khiĐiều kiệnLặp lại Nhóm lệnh Vòng

LÀM Nhóm hướng dẫn Vòng lặp trong khiĐiều kiệnLặp lại

Sự khác biệt giữa chúng là Điều kiện lặp lại (điều kiện lặp lại việc thực thi phần thân vòng lặp) được kiểm tra trong trường hợp đầu tiên trước khi phần thân vòng lặp được thực thi (vòng lặp - while) và trong trường hợp thứ hai - sau khi phần thân vòng lặp được thực thi. được thực hiện (vòng lặp - cho đến khi).

Hãy chuyển sang các ví dụ.

Hãy xem xét hành động của phần tiếp theo của chương trình.

Bộ đếm = 0

Làm Trong Khi Số > 10

Số = Số - 1

Bộ đếm = Bộ đếm + 1

MsgBox("Xong" & Bộ đếm & _

"lặp vòng lặp.")

Khi phần này của chương trình được thực thi, thông tin sau sẽ được hiển thị trong cửa sổ chức năng MsgBox:

10 lần lặp của vòng lặp đã được hoàn thành.

Trong chương trình này, điều kiện được kiểm tra trước khi vào vòng lặp. Nếu biến Số được đặt thành 9 thay vì 20, các lệnh bên trong vòng lặp sẽ không được thực thi.

Trong chương trình sau, các câu lệnh trong vòng lặp chỉ được thực hiện một lần trước khi điều kiện thất bại.

Bộ đếm = 0

Số = Số - 1

Bộ đếm = Bộ đếm + 1

Vòng lặp trong khi số > 10

MsgBox("Hoàn thành trong vòng lặp" & Bộ đếm & _

"lặp đi lặp lại.")

Hướng dẫn Làm...Vòng lặp có thể được hoàn thành sớm bằng cách sử dụng hướng dẫn Thoát Làm.

VBA. Tổ chức các chu kỳ.

Câu lệnh vòng lặp được sử dụng để lặp lại một hành động hoặc một nhóm hành động với số lần xác định. Số lần lặp lại (lặp vòng lặp) có thể được xác định trước hoặc tính toán.

VBA hỗ trợ hai loại cấu trúc vòng lặp:

  1. Các vòng lặp có số lần lặp lại cố định ( vòng phản đối).
  2. Vòng lặp với số lần lặp không xác định ( vòng lặp có điều kiện).

Đối với tất cả các loại chu kỳ, khái niệm này được sử dụng thân vòng lặp , xác định một khối câu lệnh được đặt giữa câu lệnh bắt đầu và kết thúc của vòng lặp. Mỗi lần lặp lại việc thực hiện các câu lệnh trong thân vòng lặp được gọi là sự lặp lại

Chu kỳ cố định

VBA cung cấp hai cấu trúc điều khiển để tổ chức một vòng lặp cố định: For ... Next (vòng lặp có bộ đếm) và For Each ... Next (vòng lặp có bảng liệt kê).

Toán tử cho...Tiếp theo Đây là một vòng lặp truy cập điển hình thực hiện một số lần lặp được chỉ định. Cú pháp của câu lệnh For...Next là:

Vì<счетчик> = <начЗначение>Cái đó<конЗначение>

<блок операторов>

Kế tiếp [<счетчик>]

Một ví dụ về việc sử dụng toán tử For...Next.

Liệt kê 1. Đối với … toán tử tiếp theo

‘ NHIỆM VỤ: Tạo chương trình nhận hai số từ người dùng.

‘ Cộng tất cả các số trong phạm vi được chỉ định bởi hai số này, sau đó

‘ hiển thị số tiền kết quả.

Mẫu phụ7()

Dim i As Bộ đếm chu kỳ của số nguyên

Dim sStart 'giá trị bộ đếm ban đầu

Giá trị bộ đếm cuối của Dim sEnd

Dim sSum As Long' tổng kết quả

sStart = inputBox(“Nhập số đầu tiên:”)

sEnd = inputBox(“Nhập số thứ hai:”)

sTổng = 0

Với i = CInt(sStart) Đến CInt(sEnd)

sSum = sSum + i

Tiếp theo tôi

MsgBox “Tổng các số từ “ & sStart & ” đến “ & sEnd & ” là: “ & sSum

Kết thúc phụ

Câu lệnh vòng lặp cho mỗi...Tiếp theothuộc về loại toán tử kiểu đối tượng, tức là áp dụng chủ yếu cho các bộ sưu tập các đối tượng cũng như mảng . Phần thân của vòng lặp được thực thi với số lần cố định, tương ứng với số phần tử trong mảng hoặc tập hợp. Đối với mỗi...định dạng câu lệnh tiếp theo:

Cho mỗi<элемент>TRONG<группа> <блок операторов>Kế tiếp [<элемент>]

Vòng lặp có điều kiện (vòng lặp không xác định)

Vòng lặp có điều kiện được sử dụng khi các hành động lặp lại chỉ cần được thực hiện trong những điều kiện nhất định. Số lần lặp không được xác định và nói chung có thể bằng 0 (đặc biệt, đối với các vòng lặp có điều kiện tiên quyết). VBA cung cấp cho các nhà phát triển một số cấu trúc điều khiển để tổ chức các vòng lặp có điều kiện:

  • Bốn loại Do..Loops, khác nhau về loại điều kiện được kiểm tra và thời gian cần thiết để hoàn thành việc kiểm tra này.
  • Vòng lặp liên tục While... Wend.

Vòng lặp Do While... là điển hình vòng lặp với điều kiện tiên quyết. Điều kiện được kiểm tra trước khi phần thân vòng lặp được thực thi. Chu trình tiếp tục công việc của nó cho đến khi nó<условие>được thực thi (tức là có giá trị True). Vì việc kiểm tra được thực hiện ngay từ đầu nên phần thân của vòng lặp có thể không bao giờ được thực thi. Thực hiện trong khi... Định dạng vòng lặp:

Làm trong khi<условие>

<блок операторов>

Vòng

Liệt kê 2. Vòng lặp Do While...

‘ NHIỆM VỤ: Tạo một chương trình yêu cầu đầu vào của người dùng

'một dãy số tùy ý. Đầu vào phải được chấm dứt

‘ chỉ sau khi tổng các số lẻ đã nhập vượt quá 100.

Mẫu phụ8()

Dim OddSum As Integer ‘tổng các số lẻ

Dim OddStr As String ‘một chuỗi có số lẻ

Dim Num ‘để chấp nhận số đã nhập

OddStr = “”'khởi tạo chuỗi đầu ra

OddSum = 0’ khởi tạo OddSum

Làm trong khi OddSum< 100 ‘начало цикла

Num = inputBox(“Nhập số: “)

Nếu (Số Mod 2)<>0 Sau đó ‘kiểm tra tính chẵn lẻ

OddSum = OddSum + Num’ tích lũy của tổng các số lẻ

OddStr = OddStr & Số & ” ”

Kết thúc nếu

Vòng

'in một chuỗi có số lẻ

Lời nhắc của MsgBox:=”Số lẻ: ” & OddStr

Kết thúc phụ

Thực hiện...Câu lệnh lặp trong khiđược thiết kế cho tổ chứcvòng lặp với hậu điều kiện. Điều kiện được kiểm tra sau khi phần thân vòng lặp được thực thi ít nhất một lần. Chu trình tiếp tục công việc của nó cho đến khi<условие>vẫn đúng. Thực hiện... Lặp lại trong khi Định dạng:

LÀM<блок операторов>Vòng lặp trong khi<условие>

Liệt kê 3. Vòng lặp với hậu điều kiện

‘ NHIỆM VỤ: Xây dựng chương trình trò chơi “Đoán số”. Chương trình phải ngẫu nhiên

‘ cách tạo số trong phạm vi từ 1 đến 1000, người dùng phải

‘ đoán con số này. Chương trình hiển thị gợi ý cho từng số vừa nhập

' "nhiều hơn hoặc ít hơn".

Mẫu phụ8()

Bộ đếm thời gian ngẫu nhiên 'khởi tạo trình tạo số ngẫu nhiên

Dim msg As String ‘ chuỗi thông báo

Dim SecretNumber Long, UserNumber As Variant

Bắt đầu: SecretNumber = Round(Rnd * 1000) ‘ số do máy tính tạo ra

UserNumber = Trống ‘ số do người dùng nhập

Hãy thực hiện trò chơi

Chọn trường hợp đúng

Case IsEmpty(UserNumber): msg = “Nhập một số”

Số người dùng trường hợp > Số bí mật: msg = “Quá nhiều!”

Số người dùng trường hợp< SecretNumber: msg = “Слишком мало!”

Kết thúc chọn

UserNumber = inputBox(prompt:=msg, Title:=”Đoán số”)

Vòng lặp trong khi số người dùng<>Con số bí mật

' bài kiểm tra

Nếu MsgBox(“Chơi lại?”, vbYesNo + vbQuestion, “Bạn đoán được rồi!”) = vbYes Then

Bắt đầu

Kết thúc nếu

Kết thúc phụ

Vòng lặp Làm cho đến khi... Vòng lặp và Làm... Vòng lặp cho đến khi là sự đảo ngược của các vòng lặp có điều kiện đã thảo luận trước đó. Nói chung, chúng hoạt động tương tự nhau, ngoại trừ phần thân của vòng lặp được thực thi nếu điều kiện sai (tức là.<условие>= Sai). Thực hiện cho đến khi... Định dạng vòng lặp:

Làm cho đến khi<условие> <блок операторов>Vòng

Thực hiện... Định dạng lặp cho đến vòng lặp:

<блок операторов>

Lặp lại cho đến khi<условие>

Nhiệm vụ thực tế:Viết lại các chương trình trong Liệt kê 10 và 11 bằng cách sử dụng các câu lệnh vòng lặp ngược.

Lặp lại trong khi...Wend cũng áp dụng cho các vòng lặp có điều kiện. Toán tử này hoàn toàn nhất quán với cấu trúc vòng lặp Do While.... Trong khi...Định dạng vòng lặp Wend:

Trong khi<условие>

<блок операторов>

Wend

Một tính năng đặc biệt của toán tử này là không thể buộc hoàn thành (gián đoạn) phần thân vòng lặp (toán tử Exit Do không hoạt động trong vòng lặp While ... Wend).

Làm gián đoạn một chu kỳ

Để kết thúc sớm vòng lặp và thoát khỏi vòng lặp, câu lệnh Exit được sử dụng. Toán tử này có thể áp dụng trong bất kỳ cấu trúc tuần hoàn nào ngoại trừ While... Wend. Cú pháp chung để sử dụng Exit để ngắt vòng lặp là:

<начало_цикла>

[<блок операторов1>]

Thoát (Cho | Làm)

[<блок операторов2>]

<конец_цикла>

Khi câu lệnh Thoát được thực thi, vòng lặp bị gián đoạn và quyền điều khiển được chuyển sang câu lệnh sau câu lệnh<конец_цикла>. Có thể có một số câu lệnh Thoát trong phần thân của vòng lặp.

Liệt kê 4. Buộc thoát khỏi vòng lặp

Mẫu phụ9()

Với i = 1 Đến 10000000

Nếu i = 10 thì Thoát For ‘ thoát khỏi vòng lặp khi bộ đếm đạt 10

Kế tiếp

Vòng lặp For...Next trong VBA Excel, cú pháp và mô tả của từng thành phần riêng lẻ. Ví dụ về việc sử dụng vòng lặp For...Next.

Vòng lặp For...Next trong VBA Excel được thiết kế để thực thi một nhóm câu lệnh với số lần cần thiết, được chỉ định bởi biến điều khiển vòng lặp - bộ đếm. Khi vòng lặp thực thi, giá trị của bộ đếm sau mỗi lần lặp sẽ được tăng hoặc giảm theo số được chỉ định bởi biểu thức câu lệnh Step hoặc theo mặc định là một. Khi bạn cần lặp qua các phần tử có số lượng và chỉ mục trong một nhóm (phạm vi, mảng, bộ sưu tập) không xác định, bạn nên sử dụng .

Đối với cú pháp vòng lặp...Tiếp theo

Đối với bộ đếm = bắt đầu Để kết thúc [ Bước bước ] [ câu lệnh ] [ Thoát cho ] [ câu lệnh ] Tiếp theo [ bộ đếm ] Đối với bộ đếm = bắt đầu Để kết thúc [ Bước bước ] [ câu lệnh ] [ Thoát cho ] [ câu lệnh ] Tiếp theo [ bộ đếm ]

Dấu ngoặc vuông biểu thị các thuộc tính tùy chọn của vòng lặp For...Next.

Các thành phần của For... Chu kỳ tiếp theo

Thành phần Sự miêu tả
quầy tính tiền Thuộc tính bắt buộc. Một biến số hoạt động như một bộ đếm, còn được gọi là biến điều khiển vòng lặp.
bắt đầu Thuộc tính bắt buộc. Một biểu thức số xác định giá trị ban đầu của bộ đếm.
kết thúc Thuộc tính bắt buộc. Một biểu thức số xác định giá trị bộ đếm cuối cùng.
Bước chân* Thuộc tính tùy chọn. Một câu lệnh chỉ ra rằng một bước vòng lặp sẽ được chỉ định.
bước chân Thuộc tính tùy chọn. Một biểu thức số xác định bước vòng lặp. Có thể là tích cực hoặc tiêu cực.
các câu lệnh Thuộc tính** tùy chọn. Toán tử trong mã của bạn.
Thoát cho Thuộc tính tùy chọn. Toán tử thoát khỏi vòng lặp trước khi nó kết thúc.
[bộ đếm] tiếp theo Đây quầy tính tiền- thuộc tính tùy chọn. Đây là cùng tên của biến điều khiển vòng lặp, có thể bỏ qua ở đây.

*Thuộc tính nếu Bước chân bị thiếu, vòng lặp For...Next được thực thi với bước mặc định bằng 1 .

**Nếu bạn không sử dụng mã của riêng mình trong vòng lặp thì ý nghĩa của việc sử dụng vòng lặp sẽ bị mất.

Ví dụ về For... Vòng lặp tiếp theo

Bạn có thể sao chép các vòng lặp mẫu vào mô-đun VBA, chạy từng vòng lặp một và xem kết quả.

Chu kỳ đơn giản nhất

Điền vào mười ô đầu tiên của cột đầu tiên của bảng Excel đang hoạt động với các số từ 1 đến 10:

Sub test1() Dim i As Long For i = 1 To 10 Cells(i, 1) = i Next End Sub

Chu trình đơn giản nhất với các bước

Toán tử Bước có giá trị 3 đã được thêm vào vòng lặp trước đó và kết quả được ghi vào cột thứ hai:

Sub test2() Dim i As Long For i = 1 To 10 Bước 3 Ô(i, 2) = i Next End Sub

Vòng lặp với các đối số phủ định

Vòng lặp này điền vào mười ô đầu tiên của cột thứ ba theo thứ tự ngược lại:

Sub test3() Dim i As Long For i = 0 To -9 Bước -1 Ô(i + 10, 3) = i + 10 Next End Sub

Chúng ta tăng kích thước bước lên -3 và ghi kết quả vào cột thứ 4 của bảng Excel đang hoạt động:

Sub test4() Dim i As Long For i = 0 To -9 Bước -3 Cells(i + 10, 4) = i + 10 Next End Sub

Vòng lặp lồng nhau

Vòng lặp bên ngoài tuần tự đặt các chỉ số của mười hàng đầu tiên của trang tính đang hoạt động và vòng lặp lồng nhau sẽ cộng các số trong bốn ô đầu tiên của hàng với chỉ mục hiện tại và ghi tổng vào ô của cột thứ năm. Trước khi bắt đầu vòng lặp lồng nhau với phép cộng tích lũy, chúng ta đặt lại ô thứ năm của hàng tương ứng để nếu có bất kỳ số nào trong đó thì nó sẽ không được cộng vào tổng.

Sub test5() Dim i1 As Long, i2 As Long For i1 = 1 To 10 "Gán ô thứ năm trong hàng i1 0 Cells(i1, 5) = 0 For i2 = 1 To 4 Cells(i1, 5) = Cells( i1 , 5) + Ô(i1, i2) Tiếp theo Cuối phụ

Thoát khỏi vòng lặp

Tất nhiên, trong cột thứ sáu của trang hoạt động, chúng ta sẽ viết tên của mười con vật bằng cách sử dụng vòng lặp For... Next:

Sub test6() Dim i As Long For i = 1 To 10 Cells(i, 6) = Choose(i, "Gấu", "Voi", "Hươu cao cổ", "Linh dương", _ "Cá sấu", "Ngựa vằn", "Hổ", "Thằn lằn", "Sư tử", "Hà mã") Phần cuối tiếp theo

Vòng lặp tiếp theo sẽ tìm kiếm ở cột thứ sáu một con cá sấu đã ăn galoshes. Trong ô của cột thứ bảy, vòng lặp sẽ viết dòng “Có một vòng lặp ở đây” cho đến khi gặp một con cá sấu và khi tìm thấy một con cá sấu, nó sẽ viết “Anh ấy đã ăn những con galoshes” và ngừng hoạt động bằng cách thực hiện Thoát. Để ra lệnh. Điều này sẽ hiển thị trong các ô bên cạnh tên của các con vật bên dưới con cá sấu, sẽ không chứa dòng chữ “Đã có một chu kỳ ở đây”.

Sub test7() Dim i As Long For i = 1 To 10 Nếu Cells(i, 6) = "Crocodile" Then Cells(i, 7) = "He eat the galoshes" Exit For Else Cells(i, 7) = " Ở đây có một chu kỳ" End If Next End Sub

Bạn sẽ nhận được dữ liệu đó trên bảng Excel đang hoạt động nếu bạn chạy nó một cách tuần tự trong trình soạn thảo VBA tất cả bảy chương trình con từ các ví dụ thể hiện hoạt động của vòng lặp For...Next.

Vòng lặp với các đối số phân số

Các thuộc tính bắt đầu, kết thúc và bước có thể được biểu thị bằng một số, một biến hoặc một biểu thức số:

For i = 1 Đến 20 Bước 2 For i = a To b Bước c For i = a - 3 Đến 2b + 1 Bước c/2

Tính giá trị của một biến bên ngoài vòng lặp hoặc một biểu thức bên trong nó có thể dẫn đến kết quả phân số. VBA Excel sẽ làm tròn nó thành một số nguyên bằng cách sử dụng:

"Các giá trị thuộc tính trước khi làm tròn Đối với i = 1,5 Đến 10,5 Bước 2,51" Các giá trị thuộc tính được làm tròn Đối với i = 2 Đến 10 Bước 3

Cố gắng không cho phép các giá trị đối số không được làm tròn vào phần nội dung của vòng lặp For...Next, để không nhận được kết quả không thể đoán trước khi thực thi nó. Nếu bạn không thể làm mà không có số phân số nhưng cần sử dụng tính năng làm tròn thông thường, hãy sử dụng hàm trang tính WorksheetFunction.Round trong mã VBA để làm tròn số trước khi sử dụng nó trong vòng lặp For...Next.

Bất kỳ hành động nào trong một thủ tục được lặp lại một số lần xác định hoặc cho đến khi một số điều kiện được đáp ứng hoặc không được gọi là xe đạp .

Quá trình thực hiện tất cả các câu lệnh trong cấu trúc vòng lặp một lần được gọi là lặp vòng lặp.

Cấu trúc vòng lặp luôn thực hiện một số lần xác định được gọi là vòng lặp có số lần lặp cố định. Các loại cấu trúc vòng lặp khác lặp lại số lần thay đổi tùy thuộc vào một số tập hợp điều kiện. Những chu kỳ như vậy được gọi là chu kỳ không xác định.

Khối lệnh nằm giữa đầu và cuối vòng lặp được gọi là "thân vòng lặp".

Cấu trúc vòng lặp đơn giản nhất là chu kỳ cố định .

Vòng lặp For..Next

Cú pháp

quầy tính tiền = Bắt đầuĐẾN Kết thúc
Các câu lệnh
Kế tiếp [ quầy tính tiền]

Bộ đếm - bất kỳ biến số VBA nào
Bắt đầu - bất kỳ biểu thức số nào xác định giá trị ban đầu cho biến đếm
Kết thúc - một biểu thức số xác định giá trị cuối cùng cho biến đếm


Theo mặc định VBA tăng một biến quầy tính tiền bằng 1 mỗi lần các câu lệnh được thực thi trong vòng lặp. Bạn có thể đặt một giá trị khác ( Kích thước Ster- bất kỳ biểu thức số nào) mà nó sẽ thay đổi quầy tính tiền.

Từ khóa Kế tiếp báo cho VBA biết đã đến điểm cuối của vòng lặp. Biến tùy chọn quầy tính tiền sau từ khóa Kế tiếp phải là cùng một biến quầy tính tiền, được chỉ định sau từ khóa ở đầu cấu trúc vòng lặp.


Dưới đây là danh sách vòng lặp đơn giản nhất Cho tiếp theo, đếm tổng các số từ 1 đến 10:



Và bây giờ có hai lựa chọn cho chu trình Cho tiếp theo sử dụng một bước vòng lặp khác với một bước:



Ghi chú! Khi giảm bộ đếm chu kỳ Cho tiếp theo vòng lặp thực hiện miễn là biến bộ đếm lớn hơn hoặc bằng giá trị cuối cùng và khi bộ đếm vòng lặp tăng lên, vòng lặp sẽ thực thi miễn là biến bộ đếm nhỏ hơn hoặc bằng giá trị cuối cùng.

Vòng lặp cho mỗi..Tiếp theo

Xe đạp Đối với mỗi..Tiếp theo không sử dụng bộ đếm chu kỳ. Chu kỳ Đối với mỗi..Tiếp theođược thực thi nhiều lần tùy theo số phần tử trong một nhóm cụ thể, chẳng hạn như một tập hợp các đối tượng hoặc một mảng (sẽ được thảo luận sau). Nói cách khác, chu kỳ Đối với mỗi..Tiếp theođược thực hiện một lần cho mỗi phần tử trong nhóm.

Cú pháp

Cho mỗi Yếu tố TRONG Nhóm
Các câu lệnh
Kế tiếp [ Yếu tố]

Phần tử - một biến được sử dụng để lặp qua tất cả các phần tử trong một nhóm cụ thể
Nhóm là một đối tượng hoặc mảng tập hợp
Câu lệnh - một, một vài hoặc không có câu lệnh VBA (thân vòng lặp).

Xe đạp là một nhóm các câu lệnh được thực hiện lặp đi lặp lại. Để tổ chức các vòng lặp trong VBA, tức là thực hiện lặp đi lặp lại một hoặc nhiều câu lệnh, bạn có thể sử dụng hai nhóm chính: vòng lặp với bảng liệt kê For...Next và vòng lặp với điều kiện Do... Loop. Có hai giống Cho tiếp theo(For-Next và For Each-Next) và hai loại vòng lặp Làm...Vòng lặp(Do While...Loop và Do Until...Loop), khác nhau về loại điều kiện đang được kiểm tra.

Vòng lặp tiếp theo

Vòng lặp phổ biến nhất trong VBA là vòng lặp For-Next enum. Vòng lặp này cần đặt ranh giới (giá trị bộ đếm ban đầu và cuối cùng) trong đó biến vòng lặp sẽ thay đổi.

Câu lệnh vòng lặp có cú pháp như sau:
n=1)
Cái đó Giá trị cuối cùng ( Cái đó 10)
Bước chân Tăng ( Bước chân 2)

Kế tiếp[quầy tính tiền]

Ở đây biến là một bộ đếm, giá trị của biến tăng hoặc giảm sau mỗi lần lặp của vòng lặp. Nếu không có Bước trong cấu trúc vòng lặp thì mức tăng là 1 (mặc định). Để thoát sớm câu lệnh vòng lặp, tức là. Trước khi bộ đếm đạt đến giá trị cuối cùng, toán tử phải được đưa vào cấu trúc vòng lặp Thoát cho.

Tính Thoát cho Câu lệnh vòng lặp có cú pháp như sau:
bộ đếm = Giá trị ban đầu (ví dụ: Ví dụ: n=1)
Cái đó Giá trị cuối cùng ( Cái đó 10)
Bước chân Tăng ( Bước chân 2)
[Hướng dẫn] hoặc [Khối toán tử]
Thoát cho
Kế tiếp[quầy tính tiền]

Để xử lý một nhóm các đối tượng hoặc mảng đồng nhất, cấu trúc vòng lặp sau được sử dụng:
Cho mỗi Yếu tố TRONG Nhóm (tên của một nhóm các đối tượng tương tự)
[Hướng dẫn] hoặc [Khối toán tử]
Thoát cho
Kế tiếp yếu tố

Vòng lặp với điều kiện Do While...Loop và Do Until...Loop

Câu lệnh Do While...Loop lặp lại miễn là đáp ứng một điều kiện đã chỉ định. Cần lưu ý rằng điều kiện được kiểm tra trước khi câu lệnh hoặc nhóm câu lệnh được thực thi.

Trong trường hợp này, cú pháp của câu lệnh Do While...Loop như sau:
Làm trong khiđiều kiện (Ví dụ: x<20)
[Hướng dẫn] hoặc [Khối toán tử]
Thoát Làm
Vòng


LÀM
[Hướng dẫn] hoặc [Khối toán tử]
Thoát Làm
Vòng lặp trong khi tình trạng

Câu lệnh Do Until...Loop lặp lại cho đến khi một điều kiện được đáp ứng và khi điều kiện đó được đáp ứng, câu lệnh sẽ thoát khỏi vòng lặp. Điều kiện được kiểm tra trước khi một câu lệnh hoặc một nhóm câu lệnh được thực thi.

Trong trường hợp này, cú pháp của toán tử vòng lặp Do Until...Loop như sau:
Làm cho đến khiđiều kiện (Ví dụ x=20)
[Hướng dẫn] hoặc [Khối toán tử]
Thoát Làm
Vòng

Nếu bạn cần kiểm tra một điều kiện sau khi các lệnh hoặc một khối câu lệnh đã được thực thi ít nhất một lần thì bạn có thể sử dụng cấu trúc toán tử vòng lặp sau:
LÀM
[Hướng dẫn] hoặc [Khối toán tử]
Thoát Làm
Lặp lại cho đến khi tình trạng