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.
Bì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ủ đề

