Blog
Ứng dụng các toán tử AND, OR, NOT trong VBA Excel

Ngoài cách dùng nhiều hàm IF để gộp nhiều điều kiên cùng thực thi với nhau thì bạn có thể sử dụng các hàm toán tử Logic như And, Or, Not kết hợp với IF, Else IF để thay thế. UniTrain sẽ cùng bạn khám phá cách dùng và ứng dụng các toán tử Logic như Not, And, Or trong VBA để rút gọn câu lệnh cho dễ hiểu hiểu hơn.
Các toán tử Logic thường dùng trong VBA Excel
Để kiểm tra các điều kiện bạn có thể sử dụng 3 toán tử Logic phổ biến trong VBA sau:
1. Toán tử Logic NOT trong VBA Excel
Logic NOT được dùng để kiểm tra một giá trị hay một biến không phải là một cái gì đó.
Ví dụ kiểm tra Cells A2 có phải là Cells rỗng hay không.
Sub CellA2()
If Not Range(“A2, A2”) = “” Then
MsgBox “Cell A2 không phai la Cell rong”
Else
MsgBox “Cell A2 la Cell rong”
End If
End Sub
Trong đó:
Not Range(“A2, A2”) = “”: có nghĩa là Cell A2 không phải là Cell rỗng. Tức là Cells A2 có giá trị, nếu đúng thì thực thi nhánh lệnh.
2. Toán tử Logic AND trong VBA Excel
AND được dùng khi bạn muốn kiểm tra nhiều giá trị, biến hoặc điều kiện. Nếu tất cả các điều kiện là TRUE thì thực thị lệnh nhánh đó.
Để rõ hơn Logic AND hoạt động, bạn hãy xem bảng Logic dưới đây.
Xét qua bảng, chỉ duy nhất AND trả về 1 (TRUE) khi tất cả điều kiện khác đều bằng TRUE. Có nghĩa là để thực thi nhánh lệnh có AND thì tất cả các điều kiện phải là TRUE.
Ví dụ: Kiểm tra điểm nhập vào của học sinh có phải là điểm khá hay không?
Sub kiemtradiem()
Dim diemso As Double
diem = InputBox(“Nhap so”, “Diem”, 0)
If (Round(diem, 1) >= 6.5) AND (Round(diem, 1) <= 7.9) Then
MsgBox “Hoc luc Khá”
Else
MsgBox “Khong phai hoc luc Khá”
End If
End Sub
Trong đó:
Điểm số được nhập vào từ InputBox.
Ở điều kiện IF, kiểm tra giá trị nhập vào vừa thỏa lớn hơn 6.5 vừa phải nhỏ hơn 7.9.
3. Toán tử Logic OR trong VBA Excel
Khác với toán tử AND. Toán tử OR chỉ cần một trong các điều kiện đúng thì sẽ ngưng kiểm tra các điều kiện còn lại và thực thị lệnh trong nhánh đó.
Bạn hãy xem bảng Logic dưới đây để hiểu rõ hơn về cách Logic OR hoạt động.
Xét qua bảng thì chỉ có duy nhất OR trả về 0 (FALSE) khi các điều kiện khác đều bằng FALSE. Và ở các trường hợp còn lại đều trả về TRUE khi một điều kiện là TRUE. Điều này có nghĩa, để thực thi nhánh lệnh có OR thì ít nhất một điều kiện phải có kết quả là TRUE.
4. Cách sử dụng các toán tử Logic trong cùng một nhánh điều kiện
Trong nhiều trường hợp, bạn có thể sử dụng nhiều nhóm Logic với nhau trong cùng một nhánh điều kiện IF. Việc này sẽ giúp hàm lệnh của bạn đơn giản hơn rất nhiều so với sử dụng nhiều IF lồng nhau.
Ví dụ: Kiểm tra số nhập vào có thỏa các điều kiện như nằm trong kho ảng giá trị từ 3 đến 9 hoặc 11 đến 15 và không phải là giá trị 7 hoặc 14.
Sub kiemtra()
Dim so1 As Integer
so1 = InputBox(“Nhap so”, “So 1”, 0)
If ((so1 >= 3 And so1 <= 9) Or (so1 >= 11 And so1 <= 15)) And Not (so1 = 7 Or so1 = 14) Then
MsgBox “Ban da nhap dung”
Else
MsgBox “Ban da nhap sai”
End If
End Sub
Lưu ý: Cách nhóm điều kiện sẽ thực thi từ trái qua phải và phân nhóm với nhau bằng cặp dấu (), vì vậy bạn cần đặt nhóm chính xác để kết quả trả về đúng.
Mong rằng với những chia sẽ của UniTrain trong bài viết này sẽ hữu ích đối với công việc hằng ngày của bạn. Chúc bạn có thể áp dụng các toán tử Logic để viết code một cách hiệu quả nhé!
Xem thêm
Cách in giữ lại tiêu đề trong Excel – [Giỏi Excel trong 1 phút]