Câu lệnh If nhiều (lồng nhau) VBA

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng câu lệnh If lồng nhau trong VBA

Nếu các câu lệnh cho phép bạn kiểm tra một điều kiện duy nhất trong VBA để xem điều kiện đó là Đúng hay Sai và tùy thuộc vào câu trả lời, mã sẽ di chuyển theo hướng của câu lệnh đúng hoặc câu lệnh sai.

Một câu lệnh IF đơn

1234567891011 Sub TestIfDim x as Integerx = 10Nếu x = 10 thì'nếu x là 10, điều kiện là đúngMsgBox x là 10 "Khác'nếu x không phải là 10, điều kiện là saiMsgbox "x không phải là 10"Kết thúc nếuKết thúc Sub

Giải thích các IF lồng nhau

Một If lồng nhau cho phép bạn đặt nhiều điều kiện BÊN TRONG mỗi câu lệnh Đúng và / hoặc Sai của câu lệnh If ban đầu.

1234567891011121314151617181920212223242526 Sub TestNestedIf ()Dim x as IntegerDim y as IntegerDim z dưới dạng Số nguyênx = 10y = 9z = 8Nếu x = 10 thì'nếu x là 10, điều kiện là đúng vì vậy hãy kiểm tra yNếu y = 8 thìMsgBox "y là 9"Khác'nếu y không phải là 10, điều kiện là saiMsgbox "y không phải là 9"Kết thúc nếuKhác'nếu x không phải là 10 thì điều kiện là sai, vì vậy hãy cho phép' kiểm tra zNếu z = 8 thìMsgBox "z là 8"Khác'nếu z không phải là 8, điều kiện là saiMsgbox "z không phải là 10"Kết thúc nếu'Another End If là cần thiết để đóng bản gốc nếuKết thúc nếuKết thúc Sub

Thụt lề khi viết mã luôn là một phương pháp hay vì nó giúp mã dễ đọc và dễ theo dõi khi bạn phải quay lại với nó ở một số giai đoạn hoặc khi một lập trình viên khác phải đọc nó.

Chúng tôi cũng có thể tạo một hàm do người dùng thiết kế (UDF) và gọi các giá trị của một số ô từ Excel vào hàm bằng cách sử dụng các tham số.

1234567891011121314151617181920 Hàm GetIf (x là Integer, y as Integer, z as Integer) as StringNếu x = 10 thì'nếu x là 10, điều kiện là đúng vì vậy hãy kiểm tra yNếu y = 8 thìGetIf = "y là 9"Khác'nếu y không phải là 10, điều kiện là saiGetIf = "y không phải là 9"Kết thúc nếuKhác'nếu x không phải là 10 thì điều kiện là sai, vì vậy hãy cho phép' kiểm tra zNếu z = 8 thìGetIf = "z là 8"Khác'nếu z không phải là 8, điều kiện là saiGetIf = "z không phải là 10"Kết thúc nếu'Other End If là cần thiết để đóng bản gốc nếuKết thúc nếuChức năng kết thúc

Lồng nhau nếu ví dụ thực tế

Hãy xem xét chức năng sau:

12345678910111213141516171819202122 Hàm GetDiscount (dblPrice As Double) As DoubleNếu dblPrice> = 1000 Thì'nếu giá lớn hơn 1000, hãy chỉ định chiết khấuNếu dblPrice> = 2000 Thì'nếu lớn hơn 2000, giảm giá 10%GetDiscount = dblPrice * 0,1Khác'nếu không thì giảm giá 5%GetDiscount = dblPrice * 0,05Kết thúc nếu'nếu giá không lớn hơn 1000Khác'nếu lớn hơn 500, chiết khấu 2,5%Nếu dblPrice> = 500 ThìGetDiscount = dblPrice * 0.025Khác'nếu không thì không giảm giáGetDiscount = 0Kết thúc nếu'Other End If là cần thiết để đóng bản gốc nếuKết thúc nếuChức năng kết thúc

Sử dụng chức năng này trong trang tính Excel, chúng tôi có thể kiểm tra để xem tổng giá cho một đơn đặt hàng và áp dụng các chiết khấu khác nhau tùy thuộc vào tổng giá đó.

Lập trình VBA | Code Generator làm việc cho bạn!

Sử dụng ElseIf

ElseIf cho phép chúng tôi đơn giản hóa mã của bạn vì nó chỉ chuyển xuống câu lệnh if thứ hai nếu câu lệnh đầu tiên trả về false.

12345678910111213141516 Hàm GetDiscount (dblPrice As Double) As Double'sử dụng else if để cắt giảm việc viết mãNếu dblPrice> = 2000 ThìGetDiscount = dblPrice * 0,1ElseIf dblPrice> = 1000 thìGetDiscount = dblPrice * 0.075ElseIf dblPrice> = 500 ThenGetDiscount = dblPrice * 0,05ElseIf dblPrice> = 200 ThenGetDiscount = dblPrice * 0.025ElseIf dblPrice> = 100 ThenGetDiscount = dblPrice * 0,01KhácGetDiscount = 0Kết thúc nếuChức năng kết thúc

Sử dụng một tuyên bố tình huống

Chúng ta cũng có thể sử dụng Case Statement để đạt được hiệu quả tương tự.

1234567891011121314151617 Hàm GetDiscount (dblPrice As Double) As DoubleChọn trường hợp dblPrice'câu lệnh trường hợp này có 6 mức chiết khấu khác nhauTrường hợp là> = 2000GetDiscount = dblPrice * 0,1Trường hợp là> = 1000GetDiscount = dblPrice * 0.075Trường hợp là> = 500GetDiscount = dblPrice * 0,05Trường hợp là> = 200GetDiscount = dblPrice * 0.025Trường hợp là> = 100GetDiscount = dblPrice * 0,01Trường hợp khácGetDiscount = 0Kết thúc Lựa chọnChức năng kết thúc

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave