Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

Thanh Hằng
Thanh Hằng
Mar 15 2021

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

Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

Cấu trúc IF ELSE trong VBA Excel

Cấu trúc IF ELSE trong VBA Excel dạng đơn giản

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:

  • Nếu mệnh đề Đúng (thỏa mãn) thì xảy ra điều gì
     
  • Nếu mệnh đề Không Đúng (không thỏa mãn) thì xảy ra điều gì

Cấu trúc đơn giản của IF là chỉ xét trong trường hợp mệnh đề đúng:

Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

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 Excel dạng đầy đủ

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:

Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

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

Cấu trúc IF ELSE trong VBA Excel lồng nhau

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:

Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

Trong đó,

  • Mệnh đề đầu tiên sẽ viết bình thường
  • Từ mệnh đề thứ 2 sẽ viết với ElseIf chứ không phải chỉ có If, và viết trước từ khóa Else
  • Các mệnh đề khác sẽ viết giống với mệnh đề thứ 2
  • Cuối cùng khi tất cả các mệnh đề đều không thỏa mãn thì sẽ xét tại Else
  • Kết thúc toàn bộ cấu trúc chỉ cần 1 lần End If

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:

  • Mệnh đề nào đúng sẽ dừng lại ở mệnh đề đó.
  • Chỉ khi mệnh đề trước sai thì mới xét tiếp mệnh đề 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:

Hướng dẫn cách dùng cấu trúc IF ELSE trong VBA Excel

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ị

Kết luận về cấu trúc IF ELSE trong VBA Excel

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!

5/5 - (1 bình chọn)

5/5 - (1 bình chọn)

Bài viết liên quan

Hướng dẫn về một số hàm DAX căn bản trong Power Pivot (Phần 2)

Hướng dẫn về một số hàm DAX căn bản trong Power Pivot (Phần 2)

Hướng dẫn cách phân biệt Data Table với Lookup Table trong Power Pivot

Hướng dẫn cách phân biệt Data Table với Lookup Table trong Power Pivot

Hướng dẫn cách mở thẻ Power Pivot trên thanh Menu của Excel

Hướng dẫn cách mở thẻ Power Pivot trên thanh Menu của Excel

Hướng dẫn cách phân biệt giữa Power Pivot và Pivot Table

Hướng dẫn cách phân biệt giữa Power Pivot và Pivot Table

Hướng dẫn cách kết nối các bảng trong Power Pivot

Hướng dẫn cách kết nối các bảng trong Power Pivot

Hướng dẫn cách đổi tên bảng và tên cột trong Power Pivot

Hướng dẫn cách đổi tên bảng và tên cột trong Power Pivot

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội