Excel VBA Do Loop
Vòng lặp VBA Do , nó là một tập hợp các hướng dẫn bên trong một thủ tục con trong đó mã chạy một số lần cụ thể cho đến khi đạt được tiêu chí mong muốn hoặc bất kỳ ngưỡng nào bị vượt quá hoặc an toàn cho đến khi có được dữ liệu cần thiết.
Trong khi vòng lặp hoạt động dựa trên kết quả logic, nó tiếp tục chạy vòng lặp qua lại trong khi điều kiện kiểm tra là ĐÚNG. Thời điểm điều kiện kiểm tra trả về FALSE, nó sẽ thoát khỏi vòng lặp. Vòng lặp là trái tim của bất kỳ ngôn ngữ lập trình nào. Trong các bài báo của mình, chúng tôi chứng minh tầm quan trọng của các vòng lặp và cách mã hóa chúng. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng Do Loop.

Cách sử dụng VBA Do Loop?
Ví dụ # 1 - Điều kiện khi kết thúc Vòng lặp
Chúng ta đã thấy bài kiểm tra điều kiện ở đầu vòng lặp. Trong đoạn mã trước đó, chúng ta đã thấy ví dụ về việc chèn số sê-ri và mã như vậy.
Mã:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Ô (k, 1) .Value = kk = k + 1 Loop End Sub

Bây giờ bạn có thể chạy mã này theo cách thủ công hoặc thông qua phím tắt F5 để xem kết quả.
Mã này sẽ chèn các số sê-ri từ 1 đến 10.

Nhưng chúng ta cũng có thể kiểm tra điều kiện ở cuối vòng lặp. Chúng ta cần sử dụng từ “while” và kiểm tra điều kiện ở cuối sau từ Loop.
Thay đổi duy nhất ở đây là áp dụng thử nghiệm ở cuối, như hình dưới đây.
Mã:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

Như vậy, chúng ta cũng có thể kiểm tra điều kiện ở cuối câu lệnh lặp.
Lưu ý: Mã sẽ chạy, sau đó nó kiểm tra điều kiện để quay lại lặp lại một lần nữa hay không. Điều này có nghĩa là nó sẽ chạy trước và sau đó thử tình huống sau.Ví dụ # 2 - Phép tính bằng vòng lặp Do While
Giả sử bạn có dữ liệu bán hàng và chi phí trong bảng excel của mình. Dưới đây là tập hợp dữ liệu giả mà tôi đã tạo để tính toán.

Bây giờ chúng ta cần lấy giá trị lợi nhuận trong cột C. Tôi đã tạo một mã sẽ thực hiện một công việc cho tôi.
Mã:
Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Ô (k, 2) k = k + 1 Loop End Sub

LR = Cells (Rows.Count, 1) .End (xlUp) .Row
Mã này sẽ xác định hàng được sử dụng cuối cùng trong cột đầu tiên. Điều này làm cho mã động vì nếu có bất kỳ sự bổ sung hoặc xóa dữ liệu nào, điều này sẽ điều chỉnh thời gian trình tự của tôi để chạy vòng lặp.
k = 2
Chúng tôi muốn phép tính được thực hiện từ ô thứ hai trở đi. Vậy giá trị ban đầu của k là 2.
Làm trong khi k <= LR
Như tôi đã nói, LR sẽ tìm hàng được sử dụng cuối cùng trong cột đầu tiên. Điều này có nghĩa là vòng lặp sẽ chạy trong khi k <= đến giá trị của LR. Trong trường hợp này, tôi có 10 hàng, vì vậy LR = 10.
Vòng lặp sẽ chạy cho đến khi giá trị k đạt đến 10. Khi số tiền đã vượt qua 10 vòng, nó sẽ dừng lại.
Bây giờ bạn có thể chạy mã này bằng phím tắt F5 hoặc theo cách thủ công để xem kết quả.

Ví dụ # 3 - Tuyên bố thoát trong vòng lặp Do While
Chúng ta cũng có thể thoát khỏi vòng lặp trong khi điều kiện vẫn chỉ là TRUE. Ví dụ, lấy dữ liệu trên ở đây.

Giả sử bạn không muốn thực hiện phép tính đầy đủ, nhưng bạn chỉ cần tính toán lợi nhuận 5 hàng đầu tiên, và ngay khi nó đạt đến hàng thứ 6 , bạn muốn thoát ra khỏi vòng lặp. Điều này có thể được thực hiện bằng cách sử dụng hàm IF trong excel. Đoạn mã dưới đây bao gồm câu lệnh thoát.
Mã:
Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Then Exit Do Cells (k, 3) .Value = Cells ( k, 1) + Ô (k, 2) k = k + 1 Loop End Sub

“Nếu k> 6 thì Thoát Do”
Dòng mã này sẽ bắt đầu quá trình thoát. Vòng lặp sẽ tiếp tục chạy cho đến khi giá trị của k đạt đến 6. Thời điểm nó vượt quá 6, điều kiện If sẽ thực thi mã, "Thoát Do".
Bây giờ bạn có thể chạy mã này bằng phím tắt F5 hoặc theo cách thủ công để xem kết quả.

Những điều cần ghi nhớ
- Làm Vòng lặp hoạt động dựa trên kết quả logic và nó tiếp tục chạy vòng lặp qua lại trong khi điều kiện kiểm tra là ĐÚNG. Thời điểm điều kiện kiểm tra trả về FALSE, nó sẽ thoát khỏi vòng lặp.
- Chúng ta có thể thoát khỏi vòng lặp bất kỳ lúc nào bằng cách điều chỉnh thêm một phép thử logic bên trong vòng tròn bằng cách sử dụng hàm IF.
- Nếu điều kiện hoặc bài kiểm tra được cung cấp ở đầu vòng lặp, trước tiên nó sẽ kiểm tra bài kiểm tra và chỉ tiến triển thêm nếu nó là ĐÚNG.
- Nếu điều kiện hoặc kiểm tra được cung cấp ở cuối vòng lặp, trước tiên nó sẽ thực thi khối mã bên trong câu lệnh lặp và trong tương lai, nó sẽ kiểm tra điều kiện để quyết định xem có quay lại chạy vòng lặp một lần nữa hay không. hay không.