Кілька (вкладених) операторів If VBA

Цей підручник покаже вам, як використовувати вкладені оператори If у VBA

Якщо оператори дозволяють вам перевірити одну умову у VBA, щоб побачити, чи є умова істинною чи хибною, і залежно від відповіді, код рухатиметься у напрямку справжнього або хибного висловлювання.

Єдиний оператор IF

1234567891011 Підтест ЯкщоDim x як ціле числоx = 10Якщо х = 10, то'якщо x дорівнює 10, умова істиннаMsgBox x - 10 дюймівІнакше'якщо x не дорівнює 10, умова не відповідає дійсностіПовідомлення "x не 10"Закінчити ЯкщоEnd Sub

Пояснено вкладені IF

Вкладений If дозволяє вам поставити кілька умов INSIDE до кожного з тверджень True та/або False вихідного If.

1234567891011121314151617181920212223242526 Sub TestNstedIf ()Dim x як ціле числоDim y як IntegerDim z як ціле числоx = 10y = 9z = 8Якщо х = 10, то'якщо x дорівнює 10, умова відповідає дійсності, тому перевірте для yЯкщо у = 8, тоMsgBox "y дорівнює 9"Інакше'якщо y не 10, умова не відповідає дійсностіПовідомлення "y не 9"Закінчити ЯкщоІнакше'якщо x не 10, то умова не відповідає дійсності, тому давайте' перевіримо zЯкщо z = 8, тоMsgBox "z є 8"Інакше'якщо z не 8, умова хибнаПовідомлення "z не 10"Закінчити Якщо'інший End If необхідний для закриття оригіналу ifЗакінчити ЯкщоEnd Sub

Відступи від коду під час його написання - це завжди гарна практика, оскільки це полегшує читання коду та його виконання, коли вам доводиться повертатися до нього на певному етапі, або коли інший програміст має його прочитати.

Ми також можемо створити призначену користувачем функцію (UDF) і викликати значення деяких клітинок з Excel у функцію за допомогою параметрів.

1234567891011121314151617181920 Функція GetIf (x як Integer, y як Integer, z як Integer) як StringЯкщо х = 10, то'якщо x дорівнює 10, умова відповідає дійсності, тому перевірте для yЯкщо у = 8, тоGetIf = "y дорівнює 9"Інакше'якщо y не 10, умова не відповідає дійсностіGetIf = "y не 9"Закінчити ЯкщоІнакше'якщо x не 10, то умова не відповідає дійсності, тому давайте' перевіримо zЯкщо z = 8, тоGetIf = "z дорівнює 8"Інакше'якщо z не 8, умова хибнаGetIf = "z не 10"Закінчити Якщо'інший End If необхідний для закриття оригіналу ifЗакінчити ЯкщоФункція завершення

Вкладений, якщо практичний приклад

Розглянемо таку функцію:

12345678910111213141516171819202122 Функція GetDiscount (dblPrice As Double) як DoubleЯкщо dblPrice> = 1000 Тоді'якщо ціна більше 1000, призначте знижкуЯкщо dblPrice> = 2000 Тоді'якщо більше 2000, надайте знижку 10%GetDiscount = dblPrice * 0,1Інакше'в іншому випадку дайте знижку 5%GetDiscount = dblPrice * 0,05Закінчити Якщо'якщо ціна не перевищує 1000Інакше'якщо більше 500, надайте знижку 2,5%Якщо dblPrice> = 500 ТодіGetDiscount = dblPrice * 0,025Інакше'інакше знижки немаєGetDiscount = 0Закінчити Якщо'інший End If необхідний для закриття оригіналу ifЗакінчити ЯкщоФункція завершення

За допомогою цієї функції на аркуші Excel ми можемо перевірити, щоб побачити загальну ціну замовлення, і застосувати різні знижки залежно від цієї суми.

Програмування VBA | Генератор коду працює для вас!

Використання ElseIf

ElseIf дозволяє нам спростити ваш код, оскільки він перейшов лише до другого оператора if, якщо перший повертає false.

12345678910111213141516 Функція GetDiscount (dblPrice As Double) як Double'Використовуйте else, щоб скоротити написання кодуЯкщо dblPrice> = 2000 ТодіGetDiscount = dblPrice * 0,1В іншому випадку, якщо dblPrice> = 1000 ТодіGetDiscount = dblPrice * 0,075В іншому випадку, якщо dblPrice> = 500 ТодіGetDiscount = dblPrice * 0,05В іншому випадку, якщо dblPrice> = 200 ТодіGetDiscount = dblPrice * 0,025В іншому випадку, якщо dblPrice> = 100 ТодіGetDiscount = dblPrice * 0,01ІнакшеGetDiscount = 0Закінчити ЯкщоФункція завершення

Використання заяви про випадок

Для досягнення такого ж ефекту ми також можемо використовувати випадок випадку.

1234567891011121314151617 Функція GetDiscount (dblPrice As Double) як DoubleВиберіть Справа dblPrice«Ця заява про випадок має 6 різних рівнів знижокВипадок>> 2000GetDiscount = dblPrice * 0,1Випадок> = 1000GetDiscount = dblPrice * 0,075Випадок> = 500GetDiscount = dblPrice * 0,05Випадок> = 200GetDiscount = dblPrice * 0,025Випадок> = 100GetDiscount = dblPrice * 0,01Справа в іншомуGetDiscount = 0Кінець ВиберітьФункція завершення

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave