Trong bài bác này chúng ta sẽ tìm hiểu về những vòng lặp trong VBA như: vòng lặp For, vòng lặp bởi While, vòng lặp vì Until, vòng lặp For Each. Kèm theo đó là những ví dụ dễ dàng nhất.

*


*

Vòng lặp là trong số những kỹ thuật mạnh bạo nhất của những ngôn ngữ lập trình. Vòng lặp vào Excel VBA có thể chấp nhận được bạn lặp qua một dải ô chỉ cách một vài mẫu code.

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

1. Vòng lặp For vào VBA

Vòng lặp For đối kháng giản

Vòng lặp For được dùng trong trường phù hợp biết trước tổng tần số lặp.

Bước dancing ở vòng lặp for là một đơn vị.

Bài viết này được đăng trên


Đoạn code này đang gán quý hiếm 100 cho các ô từ bỏ A1 mang đến A6. Kêt trái chạy chương trình này sẽ như sau:

Mình sẽ giải thích một chút nhé.

For i = 1 to lớn 6 có nghĩa là lặp 6 lần (1,2,3,4,5,6)Cells(i, 1).Value = 100 đã gán quý giá 100 mang lại ô trong đợt lặp đó.Lần 1: i = 1 buộc phải Cells(1, 1).Value = 100Lần 2: i = 2 bắt buộc Cells(2, 1).Value = 100Lần 3: i = 3 đề xuất Cells(3, 1).Value = 100Lần 4: i = 4 bắt buộc Cells(4, 1).Value = 100Lần 5: i = 5 đề nghị Cells(5, 1).Value = 100Next i là cú pháp bắt buộc. Trở nên i đó là biến điều khiển vòng lặp.

Vòng lặp For lồng nhau

Bạn có thể sử dụng vòng lặp For lồng nhau nhằm lặp qua 1 dãy gồm nhiều ô và các cột.

Ví dụ: Gán quý hiếm 100 cho những ô trường đoản cú A1 cho B6.


Dim i As Integer, j As IntegerFor i = 1 khổng lồ 6 For j = 1 to 2 Cells(i, j).Value = 100 Next jNext i
Vòng lặp phía bên ngoài sẽ lặp 6 lần, và những lần lặp nó đã lặp 2 lần ở vòng lặp bé bên trong.

Kết đúng thật sau:

For Loop Step

Step chính lá giá chỉ trị cách nhảy của vòng lặp.


Sub ForEach_CountTo10_Even() Dim n As Integer For n = 2 khổng lồ 10 Step 2 MsgBox n Next n end Sub
Mặc định của Step là bởi 1 đề nghị những vòng lặp chúng ta truyền step thì đó là vòng lặp tất cả bước nhảy tăng 1 solo vị.Nếu bạn có nhu cầu thực hiện vòng lặp bớt thì hãy tùy chỉnh cấu hình step là số âm.Ví dụ 1: Lặp từu 10 mang lại 1.


Sub ForEach_Countdown_Inverse() Dim n As Integer For n = 10 to lớn 1 Step -1 MsgBox n Next n MsgBox "Lift Off" over Sub
Ví dụ 2: thực hiện vòng lặp lồng nhau để in ấn ra bảng cửu chương nhân.


Sub Nested_ForEach_MultiplicationTable() Dim row As Integer, col As Integer For row = 1 lớn 9 For col = 1 lớn 9 Cells(row + 1, col + 1).Value = row * col Next col Next row over Sub
Kết quả sẽ có dạng như sau:

Exit For

Đây là lệnh dùng làm dừng vòng lặp For tức thì lập tức. Khi chạm chán lệnh này thì dù đk dúng tốt sai nó cũng sẽ kết thúc vòng lặp, của cả những đoạn code còn chưa chạy ở phía bên dưới cũng không thực thi.

Ví dụ dưới đây sẽ lặp các ô A1 mang lại A1000, nếu gặp mặt ô nào có giá trị "error" thì xuất thông tin và dứt vòng lặp.


Sub ExitFor_Loop() Dim i As Integer For i = 1 khổng lồ 1000 If Range("A" & i).Value = "error" Then Range("A" & i).Select MsgBox "Error Found" Exit For over If Next i over Sub

Continue For

Đây là lệnh làm lơ lần lặp hiện tại và dancing tới lần lặp kế tiếp. Khi gặp lệnh này thì trình biên dịch sẽ bỏ qua những đoạn code bên dưới của lần lặp hiện tại tại, sau đó kiểm tra điều kiện lặp cùng lặp mang đến lần lặp kế tiếp.

Cách cần sử dụng nó nhưu lệnh Exit For.

Xem thêm: Status Hay Về Cuộc Sống Bằng Tiếng Anh, 297+ Câu Nói Hay Về Cuộc Sống Bằng Tiếng Anh

2. Vòng lặp For Each trong VBA

Vòng lặp For Each đang lặp qua từng thành phần của một list (collection), thường vẫn là:

Các ô trong ExcelCác biểu vật dụng trong SheetCác SheetCác ô trong một vùng chọn...

Cú pháp của nó như sau:


For Each Object in Collection Next
Trong đó:

Object là đổi thay tạm dùng để làm chứa phần tử của những lần lặpColection là danh sách đối tượng người dùng cần lặpDo something là chương trình chính cho vòng lặpNext Object là lệnh đóng vòng lặp

Vòng lặp For Each được thực hiện để lăp qua các phần tử của một danh sách, chẳng hạn như một dãy các trang tính, dãy các ô hoặc một dãy các số từ nhiên.

Ví dụ 1: Lặp qua tất cả các bảng tính trong Workbook

Đoạn code này vẫn lặp qua toàn bộ các trang tính trong và hiển thị chúng:


Sub LoopThroughSheets()Dim ws As Worksheet For Each ws In Worksheets ws.Visible = True Next over Sub
Ví dụ 2: Lặp qua toàn bộ các ô trong một phạm vi (Range)

Đoạn code này sẽ lặp sang 1 tất cả những ô trong chiêu tập phạm vi, kiểm tra xem quý hiếm của ô là âm giỏi dương:


Sub If_Loop()Dim Cell as Range For Each Cell In Range("A2:A6") If Cell.Value > 0 Then Cell.Offset(0, 1).Value = "Positive" ElseIf Cell.Value

Ví dụ 3: Lặp qua các cell tự A1 đến A10


Sub ForEachCell_inRange() Dim cell As Range For Each cell In Range("a1:a10") cell.Value = cell.Offset(0, 1).Value Next cell kết thúc Sub
Ví dụ 4: Lặp qua từng sheet với loải bỏ tính năng mật khẩu bảo vệ.


Sub ForEachSheet_inWorkbook() Dim ws As Worksheet For Each ws In Worksheets ws.Unprotect "password" Next ws kết thúc Sub
Ví dụ 5: Lặp qua phần lớn workbook đã ở tâm lý open.


Sub ForEachWB_inWorkbooks() Dim wb As Workbook For Each wb In Workbooks wb.Close SaveChanges:=True Next wb over Sub
Ví dụ 6: Lặp qua những Shape vào Sheet sẽ active.


Sub ForEachShape() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.Delete Next shp kết thúc Sub
Ví dụ 7: kết hợp lệnh If Then


Sub ForEachCell_inRange() Dim cell As Range For Each cell In Range("a1:a10") If cell.Value = "" Then _ cell.EntireRow.Hidden = True Next cell over Sub

3. Vòng lặp do While trong VBA

Nếu vòng lặp For dùng để lặp trong trường hòa hợp biết trước tổng số lần lặp thì vòng lặp vì chưng While lại khác, ta sẽ sử dụng nó vào trường hợp chần chừ trước tổng mốc giới hạn lặp.

Đặt điều kiện ở trên

Cú pháp của nó như sau:


Do condition // statementsLoop
Trong kia statements chính là những đoạn code được chạy nếu condition = true.

Bạn phải chăm chú là trong các lệnh sinh hoạt statements phải bao gồm trường hợp chỉ dẫn nhưng điều kiện sai để dừng vòng lặp, còn nếu như không sẽ dẫn mang lại lặp vô hạn.

Ví dụ 1: Gán giá trị 20 cho những ô từ A1 đến A5.


Dim i As Integeri = 1Do While i
Kết quả:

Ví dụ 2: Gán giá chỉ trị của các ô trường đoản cú B1 đến B5, cực hiếm được lấy từ cột A khớp ứng và thêm vào đó 10 đối kháng vị.


Dim i As Integeri = 1Do While Cells(i, 1).Value "" Cells(i, 2).Value = Cells(i, 1).Value + 10 i = i + 1Loop
Kết quả:

Đặt đk ở cuối

Bạn có thể thay đổi biến thể của vì chưng While bằng cách đặt đk ở cuối.


Do " statementLoop While Condition
Ví dụ: Lặp từ một đến 10.


Sub DoLoopWhile() Dim n As Integer n = 1 vị MsgBox n n = n + 1 Loop While n

4. Vòng lặp do Until trong VBA

Đặt điều kiện ở đầu bài

Vòng lặp vị Until vẫn lặp cho tới khi đk được đáp ứng. Cú pháp về cơ bản giống như những vòng lặp bởi While:


Do Until Condition Loop
Ví dụ:


Sub DoUntilLoop() Dim n As Integer n = 1 vì Until n > 10 MsgBox n n = n + 1 LoopEnd Sub

Đặt điều kiện ở cuối bài

Và tương tự, bạn cũng có thể đặt condition ngơi nghỉ cuối.


Do Loop Until Condition
Ví dụ


Sub DoLoopUntil() Dim n As Integer n = 1 vì MsgBox n n = n + 1 Loop Until n > 10End Sub

Exit Do

Lệnh này có chức năng tương tự lệnh Exit For, có nghĩa là nó đã nhảy thoát khỏi vòng lặp ngay lập tức.

Ví dụ: Viết lại ví dụ ở đoạn Exit For.


Sub ExitDo_Loop() Dim i As Integer i = 1 vì Until i > 1000 If Range("A" & i).Value = "error" Then Range("A" & i).Select MsgBox "Error Found" Exit vày End If i = i + 1 Loop kết thúc Sub
Trên là cách áp dụng vòng lặp trong VBA như: Vòng lặp For, vì chưng While, vày Until, For Each.


bài xích trước bài bác tiếp


giải pháp chèn link hình ảnh vào Excel trên máy tính xách tay

bên cạnh ra, bài viết còn hướng dẫn cách chèn link hình ảnh trực đường hàng loạt…



Cách bóc và gộp ô vào Excel

vào bảng tính Microsoft Excel, hoàn toàn có thể sẽ tất cả lúc các bạn cần bóc tách ô…



Hàm MONTH() trong Excel

phương pháp dùng hàm MONTH() trong Excel



Hàm YEAR () vào Excel

phương pháp dùng hàm YEAR () trong Excel


Hàm HLOOKUP() vào Excel

bí quyết dùng hàm HLOOKUP() vào Excel


Hàm VLOOKUP() trong Excel

biện pháp dùng hàm VLOOKUP() vào Excel


Hàm LOOKUP() vào Excel

phương pháp dùng hàm LOOKUP() trong Excel


Hàm ABS() vào Excel

bí quyết dùng hàm ABS() vào Excel


Hàm SUM() vào Excel

biện pháp dùng hàm SUM() trong Excel


Hàm SQRT() trong Excel

biện pháp dùng hàm SQRT() trong Excel


Hàm MOD() trong Excel

biện pháp dùng hàm MOD() vào Excel


Hàm SUMIF() trong Excel

giải pháp dùng hàm SUMIF() vào Excel


Hàm SUBTOTAL() vào Excel

cách dùng hàm SUBTOTAL() trong Excel


Hàm ROUND() vào Excel

giải pháp dùng hàm ROUND() trong Excel


Hàm SUMPRODUCT() vào Excel

biện pháp dùng hàm SUMPRODUCT() trong Excel


Hàm COUNT() vào Excel

cách dùng hàm COUNT() trong Excel


Hàm COUNTA() vào Excel

giải pháp dùng hàm COUNTA() vào Excel


Hàm COUNTBLANK() trong Excel

giải pháp dùng hàm COUNTBLANK() vào Excel


Hàm MAX() vào Excel

phương pháp dùng hàm MAX() vào Excel


Hàm MIN() trong Excel

cách dùng hàm MIN() vào Excel


WORDPRESS
HTML Templates
Theme WordPress
Plugin WordPress
lập trình WordPress
thủ thuật WordPress
WEB HOSTING
cai quản trị Linux
thủ pháp Hosting
kiến thức Domain
WEB FRONTEND
Javascript
AngularJS
jQuery
jQuery điện thoại
HTML và CSS
Bootstrap
TypeScript
SASS CSS
VueJS
NestJS
học ReactJS
WEB BACKEND
PHP
Codeigniter
Laravel
Phalcon
OpenCart
NodeJS
Blogspot
DATABASE
học tập MySQL
học tập MongoDB
csdl căn bản
học Oracle
học tập SQL server
học SQLite
PROGRAMMING
Python
Java
Pascal
học C#
học Ruby
học Swift
C / C++
Kotlin
Golang
giải mã
Visual Basic
MOBILE DEV
React Native
Học game ios
game android
Flutter
CÔNG CỤ
học tập Git
Testing
Control Panel
Dev Tool
FFmpeg
TIN HỌC
Excel
Word
PowerPoint
Access
Photoshop
MÔN HỌC
giờ đồng hồ Anh
Toán
tiếng Nhật
Văn học tập
VIDEO
CSS Lab
PHP Lab
ra mắt
trình làng Liên hệ chính sách Điều khoản
links
link hay
liên kết
DK8 IO cài DK8 DK8
đứng đầu Vinsports.net

Bài viết liên quan