28.9 C
Ho Chi Minh City
Friday, June 5, 2026
AIPHOGPT.COM
Trang chủCông thức ExcelVBA IF Statement – Giải thích kèm ví dụ

VBA IF Statement – Giải thích kèm ví dụ

Join LeQuocThai.Com on Telegram Channel

Đánh giá lequocthai.com:

0 / 5 Voted: 0 Votes: 0

Your page rank:

Nếu bạn đã theo dõi các bài viết trước của tôi, thì bạn sẽ nhớ rằng chúng ta đã thảo luận về If Function trong Excel. Hàm IF trong Excel và câu lệnh IF trong VBA về cơ bản được thiết kế để thực hiện cùng một nhiệm vụ, nhưng cách chúng hoạt động có chút khác biệt.

Hàm IF trong Excel kiểm tra một điều kiện cụ thể và nếu điều kiện đó TRUE (đúng) thì trả về một giá trị, ngược lại trả về giá trị thứ hai.

Ngược lại, VBA IF Statement chỉ kiểm tra một điều kiện mà không trả về giá trị nào. Nếu điều kiện được đánh giá là TRUE thì chương trình sẽ chuyển quyền điều khiển tới các lệnh bên trong khối IF và thực thi chúng một cách tuần tự. Nếu điều kiện được đánh giá là FALSE thì chương trình sẽ chuyển quyền điều khiển tới các lệnh bên trong khối Else.

Mặc dù không bắt buộc phải có khối Else trong mỗi câu lệnh IF, nhưng nếu không có và điều kiện trong IF đánh giá FALSE, chương trình sẽ chỉ tiếp tục thực thi lệnh kế tiếp (lệnh sau khối IF) một cách tuần tự.

Tài liệu tham khảo:

  • Nested IF’s in Excel
  • Syntax of VBA IF Statement

Cú pháp của VBA IF Statement

“`vb

If condition_1 Then

‘Instructions inside first IF block

ElseIf condition_2 Then

‘Instructions inside ELSEIF block

ElseIf condition_n Then

‘Instructions inside nth ELSEIF block

Else

‘Instructions inside Else block

End If

“`

Trong đó, condition_1 đến condition_n là các biểu thức phải trả về giá trị Boolean (tức là TRUE hoặc FALSE). Từ khóa THEN là dấu hiệu chỉ ra rằng các lệnh ngay sau câu IF sẽ được thực thi nếu điều kiện trả về TRUE. Câu lệnh IF thường kết thúc bằng End If để thông báo cho trình biên dịch rằng đây là dòng cuối cùng của khối IF.

Cách hoạt động của VBA IF Statement

Các điều kiện cùng với các câu lệnh IF sẽ được đánh giá lần lượt. Điều này có nghĩa là:

  • Đầu tiên, IF với condition_1 được đánh giá. Nếu TRUE, các lệnh trong khối IF đầu tiên sẽ được thực thi và các khối còn lại (ELSEIF, ELSE) sẽ bị bỏ qua.
  • Nếu condition_1 FALSE, câu lệnh ElseIf tiếp theo sẽ được đánh giá. Nếu TRUE, các lệnh trong khối ElseIf sẽ được thực thi và các khối sau đó sẽ bị bỏ qua.
  • Quá trình này tiếp tục cho tới khi gặp Else. Nếu tất cả các IF và ElseIf đều FALSE, khối Else sẽ được thực thi.
Khám phá:  Hàm HSTACK trong Excel – Cách Sử Dụng

> Lưu ý: Trong các khối IF, ElseIf và Else, chỉ một khối mã duy nhất sẽ được thực thi tại một thời điểm, tùy thuộc vào kết quả của điều kiện.

Cách sử dụng IF Statement trong VBA

Trước khi thực hiện, hãy xác định mục tiêu một cách rõ ràng.

Mục tiêu: Tạo một số ngẫu nhiên trong khoảng 1‑10 và xác định xem số đó nhỏ hơn 5, bằng 5 hay lớn hơn 5.

“`vb

Sub IF_Test()

Dim num As Integer

num = WorksheetFunction.RandBetween(1, 10)

If num > 5 Then

MsgBox num & ” is greater than 5″

ElseIf num = 5 Then

MsgBox num & ” is equal to 5″

Else

MsgBox num & ” is less than 5″

End If

End Sub

“`

Giải thích: Ở đoạn mã trên, chúng ta dùng hàm RandBetween của Excel để tạo một số ngẫu nhiên từ 1‑10. Sau đó, câu lệnh IF sẽ kiểm tra số này có lớn hơn 5, bằng 5 hay nhỏ hơn 5. Dựa trên kết quả, một hộp thoại MessageBox sẽ hiện ra.

Hoạt động trong ba trường hợp

  • Số ngẫu nhiên > 5: Giả sử số tạo ra là 7. Khi chương trình tới dòng `If num > 5 Then` (dòng 4), điều kiện trả về TRUE, nên sẽ hiển thị “7 is greater than 5” và nhảy tới `End If`.
  • Số ngẫu nhiên = 5: Khi số tạo ra là 5, điều kiện `If num > 5 Then` FALSE, chương trình chuyển tới `ElseIf num = 5 Then` (đúng), hiển thị “5 is equal to 5” và sau đó nhảy tới `End If`.
  • Số ngẫu nhiên < 5: Khi số tạo ra là 3, cả hai điều kiện `If num > 5` và `ElseIf num = 5` đều FALSE, vì vậy khối Else được thực thi, hiển thị “3 is less than 5”.
Khám phá:  Excel – Hàm YEAR: Cách sử dụng

Các ví dụ về VBA IF Statement

Ví dụ 1: Dùng toán tử “<” để kiểm tra số âm

“`vb

Sub Find_Negative()

On Error GoTo catch_error

Dim number As Integer

number = InputBox(“Enter the number: “)

If number < 0 Then

MsgBox “Entered number is negative!”

Else

MsgBox “Entered number is positive!”

End If

Exit Sub

catch_error:

MsgBox “Oops, Some Error Occurred!”

End Sub

“`

Giải thích: Nhận một số từ người dùng; nếu số < 0 thì thông báo “số âm”, ngược lại thông báo “số dương”.

Ví dụ 2: Dùng toán tử “Mod” để kiểm tra chẵn lẻ

“`vb

Sub Find_Even_Odd()

On Error GoTo catch_error

Dim number As Integer

number = InputBox(“Enter the number: “)

If number Mod 2 = 0 Then

MsgBox “Entered number is Even!”

Else

MsgBox “Entered number is Odd!”

End If

Exit Sub

catch_error:

MsgBox “Some Error Occurred”

End Sub

“`

Giải thích: Kiểm tra phần dư của `number Mod 2`. Nếu bằng 0 → chẵn, ngược lại → lẻ.

Ví dụ 3: Sử dụng hàm khác trong IF để kiểm tra Palindrome

“`vb

Sub Check_Palindrome()

On Error GoTo catch_error

Dim word As String

Dim Rev_Word As String

word = InputBox(“Enter the string: “)

Rev_Word = StrReverse(word)

If LCase(word) = LCase(Rev_Word) Then

MsgBox “Entered String is Palindrome!”

Else

MsgBox “Entered String is not a Palindrome!”

End If

Exit Sub

catch_error:

MsgBox “Some Error Occurred”

End Sub

“`

Giải thích: Dùng hàm StrReverse để đảo ngược chuỗi, sau đó so sánh (không phân biệt hoa‑thường) để xác định chuỗi có phải là palindrome hay không.

Sử dụng IF với các toán tử logic AND & OR

Các toán tử logic cho phép kiểm tra nhiều điều kiện trong một câu lệnh IF. Các toán tử thường dùng trong VBA gồm:

  • And
  • Or
  • Not
  • (Ngoài ra còn có AndAlso, OrElse, Xor, nhưng trong hầu hết các trường hợp chỉ dùng ba toán tử trên.)

> Lưu ý: Tất cả các toán tử trên đều là binary (chấp nhận ít nhất hai toán hạng) ngoại trừ Not, là unary (chỉ nhận một toán hạng).

Bảng chân lý

Condition NOT Result
True False
False True
Condition1 Condition2 AND Result OR Result
True True True True
True False False True
False True False True
False False False False

AND chỉ trả về TRUE khi cả hai điều kiện đều TRUE; OR trả về TRUE nếu ít nhất một trong hai điều kiện là TRUE.

Khám phá:  Hàm MINUTE trong Excel – Cách Sử Dụng

Ví dụ 4: Dùng OR trong IF

“`vb

Sub Fav_Color()

On Error GoTo catch_error

Dim color As String

color = InputBox(“Enter your favorite color: “)

If LCase(color) = “white” Or LCase(color) = “black” Then

MsgBox “Oh Really! I too like the same.”

Else

MsgBox “Nice Choice”

End If

Exit Sub

catch_error:

MsgBox “Some Error Occurred”

End Sub

“`

Giải thích: Kiểm tra xem người dùng nhập “white” hoặc “black”.

Ví dụ 5: Dùng AND trong IF để tính điểm và xếp loại

“`vb

Sub Grade_Marks()

On Error GoTo catch_error

Dim Marks As Integer

Marks = InputBox(“Enter your marks: “)

If Marks <= 100 And Marks >= 85 Then

MsgBox “Grade A”

ElseIf Marks < 85 And Marks >= 75 Then

MsgBox “Grade B”

ElseIf Marks < 75 And Marks >= 65 Then

MsgBox “Grade C”

ElseIf Marks < 65 And Marks >= 55 Then

MsgBox “Grade D”

ElseIf Marks < 55 And Marks >= 45 Then

MsgBox “Grade E”

ElseIf Marks < 45 Then

MsgBox “Fail”

End If

Exit Sub

catch_error:

MsgBox “Some Error Occurred”

End Sub

“`

Lưu ý: Thực hành tốt hơn là dùng Select Case thay vì viết quá nhiều ElseIf; Select Case thực thi nhanh hơn và code trông sạch sẽ hơn.

Tài liệu tham khảo:

  • Select Case Statement

Vậy là chúng ta đã đi qua toàn bộ nội dung về VBA IF Statement. Nếu bạn cảm thấy bài viết này quá dài, hãy đọc lại phần quan trọng và đừng quên chia sẻ ý kiến, suy nghĩ của bạn trong phần bình luận nhé!

Join LeQuocThai.Com on Telegram Channel

Lê Quốc Thái
Lê Quốc Tháihttps://lequocthai.com/
Yep! I am Le Quoc Thai codename name tnfsmith, one among of netizens beloved internet precious, favorite accumulate sharing all my knowledge and experience Excel, PC tips tricks, gadget news during over decades working in banking data analysis.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây
Captcha verification failed!
CAPTCHA user score failed. Please contact us!

Join LeQuocThai.Com on Telegram Channel

Đọc nhiều nhất

BÀI VIẾT MỚI NHẤT

CÙNG CHỦ ĐỀ