Hướng dẫn cách viết cấu trúc hàm IF trong VBA

Hàm IF là một hàm khá thông dụng trong Excel khi xét tính logic đúng sai của 1 vấn đề. Cũng giống như Excel, trong VBA sẽ có cấu trúc hàm IF riêng. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu về cấu hàm IF trong VBA.

Cách viết cấu trúc IF dạng đơn giản

Cấu trúc hàm IF để xét tính logic Đúng / Sai của 1 vấn đề, bao gồm:

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

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

Từ khóa của cấu trúc hàm IF bao gồm:

IF … Then                     Nếu mệnh đề trong IF đúng thì

…                             Câu lệnh được thực hiện

End If                             Kết thúc cấu trúc

Trường hợp nếu mệnh đề không đúng thì sẽ không có gì xảy ra.

Cấu trúc này có thể được viết rút gọn như bên dưới:

IF + Mệnh đề + Then + Câu lệnh thực thi khi mệnh đề đúng (viết trên cùng 1 dòng)

Dạng đơn giản của cấu trúc hàm IF thường sử dụng để xét những mệnh đề ngắn, đơn giản, tại đó chỉ quan tâm đến khả năng xảy ra kết quả đúng của mệnh đề

Ví dụ:

Xét xem giá trị ở ô A1 có phải là lớn hơn 5 không. Nếu như lớn hơn 5 thì sẽ trả về giá trị Đúng tại ô B1 (không làm gì nếu như giá trị không lớn hơn 5)

Sub KiemTraGiaTri()

If Range(“A1”).Value > 5 Then

Range(“B1”).Value = “Đúng”

End If

End Sub

Cách viết cấu trúc IF đầy đủ

Cấu trúc đầy đủ của hàm IF là bao gồm cả trường hợp mệnh đề đúng và không đúng.

Cách viết như bên dưới:

Tại cấu trúc này sẽ xuất hiện thêm từ khóa Else nhằm xét trường hợp mệnh đề không đúng (không thỏa mãn điều kiện)

Ví dụ:

Tiến hành xét xem giá trị ở ô A1 có phải là lớn hơn 5 không. Nếu như lớn hơn 5 thì trả về giá trị “Đúng” tại ô B1, còn nếu không lớn hơn 5 thì sẽ trả về giá trị “Sai” ở ô B1

Sub KiemTraGiaTri()

If Range(“A1”).Value > 5 Then

Range(“B1”).Value = “Đúng”

Else

Range(“B1”).Value = “Sai”

End If

End Sub

Xem thêm: Cách sử dụng hàm INT và hàm MOD trong Excel

Cách viết cấu trúc IF lồng nhau trong VBA

Khi xét các vấn đề có liên quan đến logic phức tạp, bạn không thể chỉ sử dụng 1 lần IF, mà phải thực hiện lồng ghép nhiều lần IF trong 1 cấu trúc. Việc này sẽ giống như viết những hàm IF lồng vào nhau trong cùng 1 công thức Excel vậy. Tuy vậy, trong VBA sẽ thể hiện cấu trúc này như bên dưới:

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

Cách viết này sẽ trở nên gọn hơn và những mệnh đề If có mối quan hệ nối tiếp nhau, sẽ được thực hiện lần lượt theo mỗi mệnh đề chứ không thực hiện toàn bộ các mệnh đề.

  • Mệnh đề nào đúng thì sẽ dừng lại ở mệnh đề đó.
  • Chỉ khi mệnh đề phía trước sai thì mới xét đến tiếp mệnh đề sau.

Ví dụ:

Viết lệnh trong VBA với mục đích để xét thưởng cho nhân viên An theo bảng tính trên:

Cách làm:

Dựa vào giá trị tại  ô B2 để tiến hành xét mệnh đề so sánh giá trị ô B2 với những mức doanh thu. Nếu như thỏa mãn sẽ trả về giá trị tại ô C2 là những mức thưởng

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

Vậy là cách dùng hàm IF trong VBA đã được chúng tôi mô tả chi tiết trong bài viết trên rồi đấy. Chúc bạn thực hiện thành công!

Xem thêm: Hướng dẫn vẽ biểu đồ trong Excel nhanh chóng, đơn giản

Tin tức liên quan

Gửi 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 *