[Excel VBA tip] Các toán tử logic

Trong bài viết về VBA Excel này, bạn sẽ tiếp tục tìm hiểu về cách sử dụng và áp dụng các toán tử Logic như NOT, AND, OR trong VBA để đơn giản hóa lệnh trong các hàm so sánh điều kiện.

 

Bạn sẽ hay thấy các toán tử Logic được sử dụng trong các nhánh hàm như IF, ELSE IF. Giúp nhóm nhiều điều kiện cùng thực thi chức năng như nhau. Vì vậy, hàm lệnh sẽ gọn và dễ hiểu hơn thay vì sử dụng nhiều hàm IF.

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:

Hình 2

  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.
  1. 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.

Hình 3

  • 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.
  1. 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.

Hình 4

  • 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.
  1. 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

** 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.

 

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
Hàm TRIMRANGE() – Hàm xóa giá trị trống “đỉnh” hơn cả TRIM.

Như bạn đã biết hàm TRIM() trong Excel giúp loại bỏ các ký tự trống (khoảng trắng). Tương tự vậy hàm TRIMRANGE() được sử dụng để xóa các giá trị trống khỏi một phạm vi

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm