Thanh Hằng
Thanh Hằng
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1492 lượt xem

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

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 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 một số ví dụ thực tế.

Đọc bài viết này để nắm rõ hơn về các hàm của Excel nhé: Hướng dẫn cách viết các hàm trong Excel chi tiết dễ hiểu nhất

Đăng ký ngay khoá học Tuyệt đỉnh VBA - Viết code trong tầm tay

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:

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ác phép toán trong VBA: Phép nhân, phép chia, phép cộng, mô đun

Cấu trúc IF ELSE trong VBA Excel dạng đầy đủ

Cấu trúc IF đầ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 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 lồng ghép nhiều cấu trúc IF trong một công thức.

Công thức hàm IF lồng nhau này có thể được viết như sau trong VBA:

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:

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

Xem thêm: Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

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

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 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 blogs 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!

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Unicode tiếng việt khi viết trong VBA

HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL

Cách sử dụng hàm MsgBox() để tạo hộp thông báo với VBA

Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 1492 lượt xem
Vỗ tay vỗ tay

0 Bình luận

@ 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