Câu lệnh if trong vba excel

Mệnh đề if trong vba excel sử dụng như thế nào

  1. Cấu trúc câu lệnh điều kiện if đơn giản
  2. Câu lệnh If...Then...Else
  3. Cấu trúc câu lệnh If...ElseIf...Else (nhiều nhánh)
  4. If lồng nhau (Nested If)
  5. Cấu trúc câu lệnh If một dòng (gọn)
  6. Chia sẽ kinh nghiệm một số lỗi thường gặp với câu lệnh If
  7. Ứng dụng thực tế câu lệnh if VBA Excel
  8. Tại sao phải sử dụng câu lệnh if khi làm phần mềm VBA Excel
  9. Bài tập hàm if VBA Excel

1. Cấu trúc câu lệnh điều kiện if đơn giản

Cú pháp:

If điều_kiện Then
    ' hành động nếu điều kiện đúng
End If

Ví dụ if 1:

so=15
If so >= 0 Then
    MsgBox "La so duong"
End If

Ví dụ if 2:

If Range("A1").Value > 100 Then
    MsgBox "Giá trị lớn hơn 100"
End If


    💡 Giải thích: Nếu ô A1 có giá trị > 100 thì hộp thoại sẽ hiện ra thông báo.

2. Câu lệnh If...Then...Else

Cú pháp:

If điều_kiện Then
    ' hành động nếu đúng
Else
    ' hành động nếu sai
End If

Ví dụ 1:

so=-5
If so >= 0 Then
    MsgBox "La so duong"
Else
    MsgBox "La so am"
End If

Ví dụ 2:

If Range("A1").Value >= 50 Then
    MsgBox "Đạt yêu cầu"
Else
    MsgBox "Chưa đạt yêu cầu"
End If


    ✅ Nếu ô A1 >= 50 → báo “Đạt yêu cầu”, ngược lại → báo “Chưa đạt yêu cầu”.

3. Cấu trúc câu lệnh If...ElseIf...Else (nhiều nhánh)

Cú pháp:

If điều_kiện_1 Then
    ' hành động 1
ElseIf điều_kiện_2 Then
    ' hành động 2
Else
    ' hành động mặc định
End If

Ví dụ:

Dim diem As Integer
diem = Range("B2").Value

If diem >= 8 Then
    MsgBox "Xếp loại: Giỏi"
ElseIf diem >= 6.5 Then
    MsgBox "Xếp loại: Khá"
ElseIf diem >= 5 Then
    MsgBox "Xếp loại: Trung bình"
Else
    MsgBox "Xếp loại: Yếu"
End If


    📊 Đoạn mã đánh giá điểm và xếp loại tương ứng.

4. If lồng nhau (Nested If)

Khi một điều kiện đúng, bạn muốn kiểm tra tiếp một điều kiện con bên trong.

Câu lệnh if lồng nhau được ứng dụng rất nhiều khi làm phần mềm bằng Excel.

Ví dụ:

If Range("A1").Value > 0 Then
    If Range("B1").Value > 0 Then
        MsgBox "Cả A1 và B1 đều dương"
    Else
        MsgBox "A1 dương nhưng B1 không dương"
    End If
Else
    MsgBox "A1 không dương"
End If

5. Cấu trúc câu lệnh If một dòng (gọn)

Khi chỉ có một hành động nhỏ, bạn có thể viết trên 1 dòng:

Cú pháp:

If điều_kiện Then hành_động

Ví dụ:

If Range("A1") = "" Then MsgBox "Ô A1 đang trống"


Với Else:

If Range("A1") > 50 Then MsgBox "OK" Else MsgBox "Not OK"

6. Chia sẽ kinh nghiệm một số lỗi thường gặp với câu lệnh If

Lỗi phổ biến    Nguyên nhân
Thiếu End If    Khi dùng If...Then nhiều dòng mà không kết thúc bằng End If
So sánh sai kiểu dữ liệu    Ví dụ: so sánh chuỗi với số ("10" > 5)
Dùng = thay vì ==    Trong VBA, dùng = để so sánh, không phải == như một số ngôn ngữ khác

7. Ứng dụng thực tế câu lệnh if VBA Excel

Ví dụ: Nếu ô A1 có chữ “Nam” thì tô màu xanh, “Nữ” thì tô màu hồng:

If Range("A1").Value = "Nam" Then
    Range("A1").Interior.Color = RGB(0, 255, 0)
ElseIf Range("A1").Value = "Nữ" Then
    Range("A1").Interior.Color = RGB(255, 192, 203)
Else
    Range("A1").Interior.ColorIndex = xlNone
End If
  

8. Tại sao phải sử dụng câu lệnh if khi làm phần mềm VBA Excel

Chứng minh tại sao phải sử dụng câu lệnh if

Tôi ví dụ như sau: bạn viết 1 chương trình xác định số nhập vào là âm hay dương.

Dim so As Integer
so = Val(InputBox("Nhap 1 so:"))
Msgbox so
Msgbox "Neu ban thay so >0 thi la SO DUONG"
Msgbox "Neu ban thay so <0 thi la SO AM"

Bạn xem chương trên đã ổn hay chưa ? nếu hiểu được thì bạn đã tự nhận ra tại sao phải sử dụng câu lệnh if trong VBA Excel.

Điều kiện trong mệnh đề if là gì ?

Nếu [Thu nhập ròng] >=100 tr thì đi du lịch MỸ
   * Thu nhập ròng = Tổng thu nhập - Tổng chi phí
  Thì [Thu nhập ròng] >=100 tr là điều kiện
  Giả sử ta có thu nhập ròng là 200 tr thì điều kiện là 200>=100

   Nếu nhìn bằng mắt thường thì ta thấy đã thỏa điều kiện, nhưng làm sao để máy tính (VBA Excel) nó hiểu được điều kiện này đúng, có nghĩa ta viết code làm sao để máy tính nó nhận diện được 200>=100 là đúng.

 Ta thử gõ: Msgbox 200>=100  xem kết quả thế nào ?

 Máy tính nó đã hiểu được là 200>=100 là TRUE.

Để máy tính làm 1 hành động nào đó khi 200>=100 thì ta phải sử dụng lệnh if vba

if 200>=100 then
Msgbox "DUNG, ban thu xep di du lich nhe !"
end if

* Bạn có nhận ra vấn đề là 200>=100 ta đâu thể biết trước các con số này mà phải lấy từ biến

Dim tongthunhap as Long
Dim tongchiphi as Long
Dim thunhaprong as Long
tongthunhap=400
tongchiphi=200
thunhaprong=tongthunhap-tongchiphi
if thunhaprong>=100 then
  Msgbox "DUNG, ban thu xep di du lich nhe !"
end if


// Nếu viết 1 cách rõ ràng hơn thì

Dim tongthunhap as Long
Dim tongchiphi as Long
Dim thunhaprong as Long
Dim dieukiendidulich as Boolean
//
tongthunhap=400
tongchiphi=200
thunhaprong=tongthunhap-tongchiphi
dieukiendidulich = ( thunhaprong>=100  )
if dieukiendidulich then
  Msgbox "DUNG, ban thu xep di du lich nhe !"
end if

Phân tích chi tiets điều kiện với câu lệnh VBA

1=1 là TRUE hay False
1=2 là TRUE hay False

Các toán tử so sánh trong VBA Excel >, <, <>,> =, <=, =.

2>1 là TRUE hay False

Làm sao để VBA trả lời được 1 điều kiện đó TRUE hay False

Cách 1:
Msgbox 1=1
Cách 2:
Dim dk as Boolean
dk=(1=1)
Msgbox dk

Thực tế khi làm phần mềm bằng VBA thì khi đã biết trước là đúng hay sai thì không cần phải

Msgbox 1=1 

Điều kiện     Điều này đúng khi
x <5     x nhỏ hơn 5
x <= 5     x nhỏ hơn hoặc bằng 5
x> 5     x lớn hơn 5
x> = 5     x lớn hơn hoặc bằng 5
x = 5     x bằng 5
x <> 5     x không bằng 5
x> 5 And x <10     x lớn hơn 5 VÀ x nhỏ hơn 10
x = 2 Or x> 10     x bằng 2 HOẶC x lớn hơn 10
Vùng dữ liệu (“A1”) = “John”     Ô A1 chứa văn bản “John”
Vùng dữ liệu (“A1”) <> “John”     Ô A1 không chứa văn bản “John”

9. Bài tập hàm if VBA Excel

Khai bao biến
Dim hoten as String
Dim diem as Double
Hoten="Tran A"
diem=8

' Cách xếp loại:
nếu điểm >=8 thì giỏi
nếu diem>=7 và diem<8 thì khá
nếu diem>=5 và diem<7 thì trung bình
nếu diem<5 kém

* in ra câu: "Tran A co xep loai la GIOI" 
Tùy vào giá trị của biến diem
 

Tìm kiếm:

Bài viết liên quan:

Mệnh đề if trong vba excel sử dụng như thế nào