Giả sử bạn có một danh sách điểm của học sinh trong một lớp trong Excel và bạn muốn đánh dấu tất cả những học sinh đạt điểm 10. Theo cách thủ công, bạn sẽ kiểm tra điểm của từng học sinh và nếu xuất hiện số 10, bạn sẽ đánh dấu tên học sinh đó, và nếu không, thì bạn sẽ để nguyên như vậy. Logic tương tự như vậy cũng có thể được xây dựng được trong VBA bằng cách sử dụng câu lệnh IF ELSE trong VBA với nhiều công dụng hơn. Trong bài viết này, Gitiho sẽ chỉ dẫn bạn đọc cách dùng cấu trúc IF ELSE trong VBA trong một số ví dụ thực tế.
Cấu trúc IF thường sử dụng để xét tính logic Đúng / Sai của 1 vấn đề. Cấu trúc bao gồm:
Cấu trúc đơn giản của IF là chỉ xét trong trường hợp mệnh đề đúng:
Trong đó,
IF … Then: Nếu mệnh đề trong IF là đúng thì
… : Câu lệnh được thực hiện
End If : Kết thúc cấu trúc
Nếu mệnh đề Không Đúng, sẽ không có gì xảy ra.
Cấu trúc rút gọn hơn có thể viết như sau:
IF + Mệnh đề + Then + Câu lệnh thực thi khi mệnh đề Đúng (viết trên cùng 1 dòng)
Lưu ý: Dạng rút gọn này thường dùng để xét các mệnh đề ngắn gọn và đơn giản, trong đó mệnh đề chỉ quan tâm đến khả năng Đúng (thỏa mãn) của mệnh đề.
Ví dụ: Hãy kiểm tra xem giá trị tại ô A1 có lớn hơn 5 hay không? Nếu > 5 thì trả kết quả về giá trị Đúng tại ô B1 (để nguyên nếu giá trị không lớn hơn 5).
Bạn đọc cần điều mã Code sau vào VBA:
Sub KiemTraGiaTri() If Range(“A1”).Value > 5 Then Range(“B1”).Value = “Đúng” End If End Sub.
Xem thêm: HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL
Cấu trúc IF ELSE trong VBA đầy đủ bao gồm cả trường hợp mệnh đề Đúng và mệnh đề Không Đúng.
Cấu trúc này được viết như sau:
Từ khóa Else trong cấu trúc IF ELSE trong VBA này có nhiệm vụ xét trường hợp mệnh đề Không Đúng (không thỏa mãn).
Ví dụ: Hãy kiểm tra xem giá trị tại ô A1 có lớn hơn 5 hay không? Nếu > 5 thì trả kết quả về giá trị ''Đúng'' tại ô B1 và nếu không, thì trả kết quả về ''Sai'' tại ô B1.
Bạn đọc cần điều mã Code sau vào VBA:
Sub KiemTraGiaTri() If Range(“A1”).Value > 5 Then Range(“B1”).Value = “Đúng” Else Range(“B1”).Value = “Sai” End If End Sub
Với những yêu cầu phức tạp hơn, cấu trúc một lần IF không thể đáp ứng hết các điều kiện. Do vậy, cần thiết phải sử dụng cấu trúc IF ELSE trong VBA trong một công thức.
Công thức IF ELSE trong VBA có thể được viết như sau trong VBA:
Trong đó,
Trong công thức này, các mệnh đề IF có mối quan hệ nối tiếp nhau, và các mệnh đề sẽ được thực hiện lần lượt, chứ không cùng đồng thời thực hiện tất cả. Với quy luật sau:
Ví dụ: Dưới đây là bảng xét thưởng cho nhân viên An, hãy điền mức thưởng phù hợp với yêu cầu sau:
Dựa vào giá trị ở ô B2 để xét mệnh đề so sánh giá trị ô B2 với các mức doanh thu. Nếu thỏa mãn (Đúng) sẽ trả kết quả về giá trị ở ô C2 là các mức thưởng
Mã Code cần viết trong VBA như sau:
Sub XetThuong() If Range(“B2”).Value > 500 Then ‘Xét giá trị B2 > 500 trước Range(“C2”).Value = 200 ElseIf Range(“B2”).Value > 300 Then ‘Xét giá trị B2 > 300 sau, trường hợp B2 > 500 đã xét trước đó nên trường hợp này chỉ là B2 > 300 và B2 <= 500 Range(“C2”).Value = 100 Else Range(“C2”).Value = 0 End If End Sub.
Xem thêm: Cách để Excel VBA tự động điền công thức và gán giá trị
Hy vọng bài viết trên đã hướng dẫn các bạn đọc cách viết cũng như sử dụng cấu trúc IF ELSE trong VBA một các bao quát và đa dạng nhất. Ngoài ra để biết thêm về những kiến thức hay như vậy với công cụ Excel hay VBA Excel thì đừng quên đón đọc những bài viết hữu ích trên blog Gitiho hay đăng ký tham gia khóa học Tuyệt đỉnh VBA - Viết code trong tầm tay để nhận được hướng dẫn tận tình từ các chuyên gia hàng đầu Việt Nam nhé!
Chúc bạn áp dụng thành công!
Khóa học liên quan