Vòng Lặp Và Điều Kiện Trong VBA: For, Do While, If Then Else
Chia sẻ
"Nắm vững các cấu trúc điều khiển trong VBA: For Next, For Each, Do While, Do Until, If Then Else, Select Case — kèm ví dụ thực tế từ báo cáo Excel."
1. Tại Sao Cần Vòng Lặp Và Điều Kiện?
Trong VBA, vòng lặp và điều kiện là hai cấu trúc nền tảng giúp bạn tự động hoá các tác vụ lặp đi lặp lại và ra quyết định dựa trên dữ liệu. Thay vì copy-paste macro 100 lần, bạn viết một vòng lặp chạy qua 100 dòng dữ liệu.
2. Cấu Trúc Điều Kiện
2.1. If...Then...Else
Sub XepLoai()
Dim diem As Double
diem = Range("B2").Value
If diem >= 8 Then
Range("C2").Value = "Giỏi"
ElseIf diem >= 6.5 Then
Range("C2").Value = "Khá"
ElseIf diem >= 5 Then
Range("C2").Value = "Trung bình"
Else
Range("C2").Value = "Yếu"
End If
End Sub2.2. Select Case
Khi có nhiều nhánh điều kiện, Select Case dễ đọc hơn If lồng nhau:
Sub TinhThue()
Dim mucLuong As String
mucLuong = Range("A2").Value
Select Case mucLuong
Case "Bậc 1"
Range("B2").Value = 0.05
Case "Bậc 2"
Range("B2").Value = 0.1
Case "Bậc 3"
Range("B2").Value = 0.15
Case Else
Range("B2").Value = 0.2
End Select
End Sub3. Các Loại Vòng Lặp
3.1. For...Next
Lặp với số lần xác định:
Sub TinhTong()
Dim i As Long, tong As Double
tong = 0
For i = 2 To 100
tong = tong + Cells(i, 3).Value
Next i
Cells(101, 3).Value = tong
End Sub3.2. For Each...Next
Lặp qua từng phần tử trong collection — rất hay dùng với Range, Sheets, Workbooks:
Sub ToMauDongAm()
Dim cell As Range
For Each cell In Range("C2:C100")
If cell.Value < 0 Then
cell.Font.Color = RGB(255, 0, 0)
cell.Font.Bold = True
End If
Next cell
End Sub3.3. Do While...Loop
Lặp khi điều kiện còn đúng — phù hợp khi không biết trước số lần lặp:
Sub DocDuLieuDenKhiTrong()
Dim i As Long
i = 2
Do While Cells(i, 1).Value <> ""
' Xử lý dữ liệu ở dòng i
Cells(i, 5).Value = Cells(i, 3).Value * Cells(i, 4).Value
i = i + 1
Loop
MsgBox "Đã xử lý " & (i - 2) & " dòng dữ liệu"
End Sub4. So Sánh Các Vòng Lặp
Loại | Khi nào dùng | Ví dụ |
|---|---|---|
For...Next | Biết trước số lần lặp | Lặp từ dòng 2 đến 100 |
For Each | Lặp qua collection | Duyệt tất cả Sheets |
Do While | Không biết trước khi nào dừng | Đọc đến dòng trống |
Do Until | Lặp đến khi điều kiện đúng | Chờ đến khi gặp marker |
5. Mẹo Tránh Lỗi Vòng Lặp Vô Hạn
Luôn đảm bảo điều kiện dừng sẽ xảy ra
Thêm biến đếm counter để giới hạn tối đa số lần lặp
Dùng
Ctrl + Breakđể dừng macro đang chạy bị treoTest trước với dataset nhỏ trước khi chạy toàn bộ
6. Kết Luận
Nắm vững vòng lặp và điều kiện là bước quan trọng nhất để viết VBA hiệu quả. Kết hợp chúng với các thao tác trên Range, Sheet, Workbook — bạn có thể tự động hoá hầu hết mọi tác vụ Excel.
📌 Lưu ý: File demo .xlsm download từ mạng cần bỏ chặn macro trước khi sử dụng. Xem hướng dẫn chi tiết: Cách Bỏ Chặn Macro Excel.
Mục lục
Muốn làm chủ VBA?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
VBA Cơ Bản Cho Người Mới Bắt Đầu: Tự Động Hoá Excel Từ Con Số 0
Hướng dẫn VBA Excel từ A-Z cho người mới: bật Developer Tab, Macro Recorder, viết code Sub, biến, If/Else, vòng lặp, Range/Cells, và ví dụ format báo cáo tự động. Kèm file demo .xlsm.

Tự Động Hóa Báo Cáo Excel: VBA + Power Query + Email Tự Gửi Hàng Tuần
Xây dựng hệ thống báo cáo tự động hoàn chỉnh: Power Query refresh dữ liệu, VBA format và tạo PDF, Outlook gửi email tự động. Kèm Task Scheduler chạy hàng tuần không cần mở Excel.
Bỏ Chặn Macro Excel: Hướng Dẫn Bật Macro Cho File Download Từ Mạng
Hướng dẫn 4 cách bỏ chặn macro trong file Excel .xlsm download từ mạng: Properties Unblock, Enable Content, Trust Center, và PowerShell.
