VBA Множествени (вложени) изявления на If

Този урок ще ви покаже как да използвате вложени оператори If във VBA

Ако операторите ви позволяват да тествате за едно условие във VBA, за да видите дали условието е True или False, и в зависимост от отговора, кодът ще се движи в посока на истинското изявление или невярно изявление.

Единично изявление на IF

1234567891011 Подтест АкоDim x като Integerx = 10Ако x = 10 тогава„ако x е 10, условието е вярноMsgBox x е 10 "Иначе'ако x не е 10, условието е невярноMsgbox "x не е 10"Край АкоEnd Sub

Обяснени вложени IF

Вложено If ви позволява да поставите множество условия ВЪВ ВСЕКИ всеки от верните и/или неверните изявления на оригиналния If.

1234567891011121314151617181920212223242526 Sub TestNstedIf ()Dim x като IntegerЗатъмнете като цяло числоDim z като цяло числоx = 10y = 9z = 8Ако x = 10 тогава'ако x е 10, условието е вярно, затова проверете за yАко y = 8 тогаваMsgBox "y е 9"Иначе'ако y не е 10, условието е невярноMsgbox "y не е 9"Край АкоИначе'ако x не е 10, тогава условието е невярно, така че нека' проверим за zАко z = 8, тогаваMsgBox "z е 8"Иначе'ако z не е 8, условието е невярноMsgbox "z не е 10"Край Ако„друг край Ако е необходимо за затваряне на оригинала акоКрай АкоEnd Sub

Отстъпването на кода, когато го пишете, винаги е добра практика, тъй като прави кода лесен за четене и следване, когато трябва да се върнете към него на определен етап или когато друг програмист трябва да го прочете.

Можем също така да създадем потребителска функция (UDF) и да извикаме стойностите на някои клетки от Excel във функцията, използвайки параметри.

1234567891011121314151617181920 Функция GetIf (x като Integer, y като Integer, z като Integer) като StringАко x = 10 тогава'ако x е 10, условието е вярно, затова проверете за yАко y = 8 тогаваGetIf = "y е 9"Иначе'ако y не е 10, условието е невярноGetIf = "y не е 9"Край АкоИначе„ако x не е 10, тогава условието е невярно, така че нека“ тестваме за zАко z = 8 тогаваGetIf = "z е 8"Иначе'ако z не е 8, условието е невярноGetIf = "z не е 10"Край Ако„друг край Ако е необходимо за затваряне на оригинала акоКрай АкоКрайна функция

Примерен, ако е практически пример

Помислете за следната функция:

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Край Ако„друг край Ако е необходимо за затваряне на оригинала акоКрай АкоКрайна функция

Използвайки тази функция в лист на Excel, можем да тестваме, за да видим общата цена за поръчка, и да приложим различни отстъпки в зависимост от тази сума.

VBA програмиране | Code Generator работи за вас!

Използване на 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Край АкоКрайна функция

Използване на изявление по случай

Можем също да използваме Case Statement за постигане на същия ефект.

1234567891011121314151617 Функция GetDiscount (dblPrice As Double) Като DoubleИзберете Case 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