телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Vba excel състояние или. Условен оператор във VBA. Ако условие тогава израз

Използването на условния оператор е неразделна част от почти всеки език за програмиране. И всъщност всичко идва от математиката, тъй като първоначално езиците за програмиране са били формирани като инструменти за решаване на различни проблеми. Веднага ще кажа, че статията е скучна и безинтересна. Просто е физически невъзможно да се изтръгне нещо ново от програмирането, по-специално от описанието на операторите, но ще измисля нещо. И така, в езика VBA операторът if се използва за проверка на условия, които могат да съществуват в няколко варианта. Но първо, малко хумор...

Заек тича през гората и виждаме мечка, която чете книга. Заекът пита: „Клух, какво четеш?“ Той отговаря с умен поглед: „Логика“. Косой, изглеждайки изненадан, пита: "Какво е логика?" "Е, вижте", казва мечката:

  • М: Имаш ли кибрит?
  • Z: Не
  • М: Значи не пушиш
  • Z: Да!
  • M: Ако не пушите, тогава няма излишни пари
  • Z: Точно така!
  • М: Значи ходиш след момичета?
  • Z: Разбира се!
  • М: И щом ходиш по момичета, значи не си импотентен!
  • Z: Отново правилно!

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

  • Z: Имате ли кибрит?
  • Б: Да
  • З: Значи си импотентен!

Ами да, преразказах вица както си спомням

Добре, сега да навлезем в теорията...

Опция 1. Най-простата употреба на условния оператор на VBA if е, когато дадено условие е проверено и ако е вярно, тогава се изпълнява един израз:

Ако условие тогава израз

Вариант 2. Може да възникне ситуация, когато след проверка на условие трябва да бъдат изпълнени няколко израза, в който случай операторът if приема формата:

Ако условие тогава

Израз 1

Израз 2

Израз Н

Както можете да видите, в този случай се използва затварящият блок if ... end if;

Вариант 3: За да избегнете създаването на вложени условни изрази, използвайте следната конструкция:

Ако условие тогава

Израз 1

Израз 2

Всичко тук е изключително просто: ако условието е вярно, първият израз се изпълнява, ако не, вторият. Струва си да запомните, че след проверка на условието може да последват няколко твърдения, както в опцията по-горе.

Вариант 4: Проверка на множество условия:

Ако условие 1 тогава

Изрази 1

ElseIf условие 2 тогава

Изрази 2

ElseIf условие 3 тогава

Изрази 3

Логиката на операцията е следната: първо се проверява първото условие, ако е вярно, след това се изпълняват първите изрази и след това се извършва преход към оператора, който следва End If. Ако първото условие не е изпълнено, второто се проверява и т.н., използването на израз Else в края не е задължително, то може да бъде последвано от оператор, който трябва да бъде изпълнен, ако нито едно от предишните условия не е изпълнено.

Добре, сега нека напишем прост пример за използване на VBA if then конструкцията. Създайте формуляр в редактора на Visual Basic за приложения и добавете три текстови етикета () и един бутон () към неговата повърхност. В редактора на кода ще напишем:

Private Sub GetSub() Dim MySumm As Integer Dim MyVar As Byte MyVar = 0 Do While MySumm<= 10000 MySumm = MySumm + 1 If MySumm = 10 Then Label1.Caption = "Сумата достигна 10" ElseIf MySumm = 100 Then Label2.Caption = "Сумата достигна 100" ElseIf MySumm = 1000 Then Label3.Caption = "Сумата достигна 1000" Else Label4.Caption = „Стойността е достигната“& MySumm End If Loop End Sub Private Sub CommandButton1_Click() Call GetSub End Sub Private Sub UserForm_Initialize() Label1.Caption = "" Label1.FontSize = 13 Label1.ForeColor = vbRed Label2.Caption = "" Label2.FontSize = 13 Label2. ForeColor = vbGreen Label3.Caption = "" Label3.FontSize = 13 Label3.ForeColor = vbBlue Label4.Caption = "" Label4.FontSize = 13 CommandButton1.Caption = "Run" End Sub

В процедурата GetSub се използва цикъл, условието за изпълнение на цикъла е стойността на променливата MySumm да е по-малка или точно 10000. Тялото на самия цикъл използва VBA оператори if then с няколко опции. Условията се проверяват: ако сумата достигне стойност 10, тогава напишете една информация в първото текстово поле, ако 100 - друга информация, ако 1000 - третата информация, в противен случай - напишете данните в свойството Caption на четвъртия текст поле.

Едноредови и многоредови If...Then...Else операторни конструкции и функция IIf, използвани в VBA Excel код - синтаксис, компоненти, примери.

Изявление If...Then...Else

Оператор Ако...Тогава...Иначее проектиран да прехвърля управлението към един от операторските блокове в зависимост от резултатите от проверяваните условия.

Едноредова конструкция

Оператор Ако...Тогава...Иначеможе да се използва в едноредова конструкция без ключови думи Друго, Край Ако.

Синтаксис на едноредовия If...Then...

Ако[състояние] Тогава[оператори]

Едноредови компоненти Ако...Тогава...

  • състояние Вярноили Невярно;
  • оператори състояниевръща стойност Вярно;

Ако компонентът състояниевръща стойност Невярно, блок строителни оператори Ако...Тогава...

Пример 1

Sub primer1() Dim d As Integer, a As String d = InputBox("Въведете число от 1 до 20", "Пример 1", 1) Ако d > 10 Тогава a = "Числото " & d & " е по-голямо от 10" MsgBox a End Sub

Многоредова конструкция

Синтаксис на многоредова конструкция If...Then...Else

Ако[състояние] Тогава[оператори] ElseIf[състояние] Тогава[оператори] ---------------- Друго[оператори] Край Ако

Компоненти на многоредов дизайн Ако...Тогава...Иначе:

  • състояние- числов или низов израз след ключовата дума Акоили ElseIfи връщане на булева стойност Вярноили Невярно;
  • оператори- блок от кодови изрази на VBA Excel, който се изпълнява, ако компонентът състояниевръща стойност Вярно.
  • пунктирана линияобозначава допълнителни градивни елементи от низ ElseIf [условие] Тогаваи струни [оператори];
  • блок от изрази след ключовата дума Другосе изпълнява така или иначе, но кодовият блок от реда Другои струни [оператори]не е задължително и може да бъде пропуснато.

Ако компонентът състояниевръща стойност Невярно, следващият блок строителни оператори Ако...Тогава...Иначесе пропуска и управлението на програмата се прехвърля на следващия ред от код.

Най-простият вариант на многоредов дизайн Ако...Тогава...Иначе:

Ако[състояние] Тогава[оператори] Друго[оператори] Край Ако

Пример 2

Sub primer2() Dim d As Integer, a As String d = InputBox("Въведете число от 1 до 40", "Пример 2", 1) Ако d< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 и d< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 и d< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

Функция IIf

функция IIfпроверява дадено условие и връща стойност в зависимост от резултата от теста.

Синтаксис на функцията

IIf([условие], [ако е вярно], [ако е невярно])

Компоненти на функцията IIf

  • състояние- числов или низов израз, който връща булева стойност Вярноили Невярно;
  • ако е вярно IIf, Ако състояниевърната стойност Вярно;
  • ако е False- стойността, която функцията връща IIf, Ако състояниевърната стойност Невярно.

Пример 3

Sub primer3() Dim d As Integer, a As String d = InputBox("Въведете число от 1 до 20", "Пример 3", 1) a = IIf(d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

Когато щракнете върху бутона „Отказ“ или затворите диалоговия прозорец InputBox от примерите с кръст, се генерира грешка, тъй като в тези случаи връща празен низ. Присвояването на празен низ към променлива Integer d причинява грешка. Когато щракнете върху бутона „OK“ в диалоговия прозорец, VBA Excel автоматично преобразува числата, въведени в полето за въвеждане в текстов формат, в числовия формат на променливата d.

Най-важните условни оператори, използвани в Excel VBA, са операторите Ако...ТогаваИ Изберете Case. И двата израза тестват едно или повече условия и в зависимост от резултата ще извършват различни действия. След това ще говорим по-подробно за тези два условни оператора.

Изявление "Ако...Тогава" във Visual Basic

Оператор Ако...Тогавапроверява условието и ако то е ВЯРНО, тогава се изпълнява зададеният набор от действия. Може също да се дефинира набор от действия, които трябва да бъдат изпълнени, ако условието е невярно (FALSE).

Синтаксис на оператора Ако...Тогавакато този:

Ако Състояние1Тогава
Действия, ако е изпълнено Условие1
ElseIf Състояние2Тогава
Действия, ако условие 2 е изпълнено
Друго
Действия, ако нито едно от условията не е изпълнено
Край Ако

В този израз елементите ElseIfИ Другоусловията на оператора не могат да се използват, ако не са необходими.

По-долу е даден пример, в който, използвайки оператора Ако...ТогаваЦветът на запълване на активната клетка се променя в зависимост от стойността, която съдържа:

Ако ActiveCell.Value< 5 Then ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет ElseIf ActiveCell.Value < 10 Then ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End If

Имайте предвид, че след като условието стане вярно, изпълнението на условния оператор се прекъсва. Следователно, ако стойността на променливата ActiveCellпо-малко от 5, тогава първото условие става вярно и клетката е оцветена в зелено. След това, изпълнение на изявлението Ако...Тогавасе прекъсва и останалите условия не се проверяват.

Изберете Case Statement във Visual Basic

Оператор Изберете Caseподобно на оператора Ако...Тогавав това, че също проверява истинността на условието и в зависимост от резултата избира една от опциите.

Синтаксис на оператора Изберете Caseкато този:

Изберете Case Изразяване
Случай Стойност1
Действия, ако резултатът от израза съответства на стойност1
Случай Стойност2
Действия, ако резултатът от израза съответства на стойност2

Друг случай
Действия, ако резултатът от израза не съвпада с нито една от изброените опции Стойности
Край Избор

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

В следващия пример, използвайки конструкцията Изберете CaseЦветът на запълване на текущата клетка се променя в зависимост от стойността в нея:

Изберете Case ActiveCell.Value Case Is<= 5 ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет Case 6, 7, 8, 9 ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Case 10 ActiveCell.Interior.Color = 65535 "Ячейка окрашивается в жёлтый цвет Case 11 To 20 ActiveCell.Interior.Color = 10498160 "Ячейка окрашивается в лиловый цвет Case Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End Select

Примерът по-горе показва как можете да зададете стойност за елемент по различни начини Случайв дизайна Изберете Case. Това са методите:

Случаят е<= 5 По този начин, използвайки ключовата дума Случаят еможете да проверите дали стойността удовлетворява Изразисъстояние на формата <=5 .
Случай 6, 7, 8, 9 По този начин можете да проверите дали стойността съвпада Изразис една от изброените стойности. Изброените стойности са разделени със запетаи.
Случай 10 Това проверява дали стойността съвпада Изразис дадена стойност.
Случай от 11 до 20 По този начин можете да напишете израз, за ​​да проверите дали стойността удовлетворява Изразисъстояние на формата от 11 до 20(еквивалентно на неравенството „11<=значение<=20”).
Case Else Подобно на това, използвайки ключовата дума Друго, действията са посочени в случай, че стойността Изразине отговаря на нито една от изброените опции Случай.

Веднага щом бъде намерено едно от условията, се извършват съответните действия и се излиза от структурата Изберете Case. Тоест във всеки случай ще бъде изпълнен само един от изброените клонове Случай.

Изявление If...Then...Else.

Този урок ще се фокусира върху темата за операторите. По-конкретно ще се запознаем с оператора If...Then...Else, а също така ще се запознаем с аритметичните оператори и операторите за сравнение, без които няма да можем да използваме If...Then...Else оператор в максималната възможна степен.

Visual Basic има доста голям брой различни оператори, някои от които могат да сварят ума дори на опитен програмист. За да не „ври“, ще разгледаме само най-основните оператори, на които работят 95% от програмите, ще изучаваме останалите оператори, ако е необходимо, по този начин няма да се налага да наизустявате цял учебник и можете веднага да преминете към практически упражнения.

С публикуването на този урок предполагам, че имате познания по математика в началното училище.
Какъв вид знание? Това са същите примери, в които изваждаме, събираме, умножаваме,... Помните ли това? Страхотен! Това означава, че все още има барут в колбите.

Преди да започнете да изучавате оператора If...Then...Else, трябва да се запознаете с аритметичните и логически оператори, без които не можем да приложим оператора If...Then...Else от гледна точка на дълбоко практика. Добре, стига скучните инструкции и отклонения, облегнете се, да се заемем с работата!

Аритметични оператори
С помощта на тези оператори можете; деля, умножавам, събирам и т.н.
Тук всичко е толкова просто, колкото в началното училище.

+ (добавка)
- (изваждане)
* (умножение)
/ (деление с остатък) в училище знакът за разделяне беше този знак : запомнете тези разлики и не се бъркайте
\ (цялочислено деление, без остатък)

Оператори за сравнение
Това са доста важни оператори. Тези оператори могат да се използват за сравняване на числа, низове и други данни. Без оператори за сравнение е невъзможно да се изгради логика или разклонение в програма.
Важно е да запомните, че операторите за сравнение сравняват два израза и връщат булева стойност под формата на True (ако условието е вярно) и False (ако условието не е вярно).
True в превод от английски означава - Истина
False в превод от английски означава - Лъжа
В началото това може да изглежда неразбираемо, но не се притеснявайте, малко по-късно ще разберете какво означава цялата тази дяволия.

= (равно)
Стойността на първия израз е равна на стойността на втория израз или може да бъде резултат от събиране/изваждане/... на две изчисления.

<> (неравенство)
Стойността на първия израз не е равна на стойността на втория израз

< (по-малко)
Стойността на първия израз е по-малка от стойността на втория израз

> (Повече ▼)
Стойността на първия израз е по-голяма от стойността на втория

<= (по-малко или равно)
Стойността на първия израз е по-малка или равна на стойността на втория

>=
(повече или равно)
Стойността на първия израз е по-голяма или равна на стойността на втория

Виждам, виждам, че вече се чувствате леко уплашени, всъщност няма нищо страшно!
Прочетете и ще видите, че всичко е съвсем просто.
По-долу ще подкрепим подробно всичко с примери и практика.
И така, разгледахме аритметични и логически оператори, сега можем да преминем директно към самия оператор If...Then...Else

Изявление If...Then...Else
Първо, нека да разгледаме какво означават думите на оператора, когато са преведени от английски на руски.
Ако се превежда като Ако
Тогава се превежда като Това
Else се превежда като Иначе

За какво се използва изразът If...Then...Else?
Използвайки този оператор, можете да разклонявате програми, без този оператор е невъзможно да напишете сериозна програма.
Да преминем към типичните примери.

Как компютърът обработва оператора If...?
Да кажем, че имаме две променливи:

Dim var1 = 10 Dim var2 = 5

и да кажем, че имаме условие:

If var1 > var2 Then MsgBox("Да, var1 е по-голямо от var2") End If

Как работи състоянието, показано по-горе?
Компютърът ще разгледа променливите var1 и var2, ако var1 наистина е по-голяма от var2, тогава условието е вярно (True) и компютърът ще покаже MsgBox.
Ако условието не е вярно (False), компютърът няма да покаже MsgBox.
Можете да проверите това, като промените стойностите на променливите на други числа, така че условието да не е вярно, тогава няма да видим MsgBox.

внимание!

За да проучите примерите, от които се нуждаете.
След като създадете проект във формуляра, трябва да щракнете двукратно върху бутона с левия бутон на мишката, ще се отвори редакторът на кода и курсорът ще бъде поставен на мястото, където трябва да вмъкнете кода от дадените по-долу примери .
След като въведете кода, трябва да видите резултата, като щракнете върху бутона, разположен на формуляра.


Примери
След това ще бъдат дадени примери в реда, посочен по-долу.

Аритметични оператори
+ (добавка)
- (изваждане)
* (умножение)
/ (деление)

Спойлер: Аритметични примери - КЛИК

+ Допълнение:

"Примерът показва как можете да съберете две числа Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 + chislo2 MsgBox(resultat)

- Изваждане:

"Примерът показва как можете да получите разликата на две числа (изваждане) Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 - chislo2 MsgBox(resultat)

* Умножение:

"Примерът показва как можете да умножите едно число по друго Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 * chislo2 MsgBox(resultat)

/ Разделение:

"Примерът показва как можете да разделите едно число на друго Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 / chislo2 MsgBox(resultat)

Оператори за сравнение
= (равно)
<> (неравенство)
< (по-малко)
> (Повече ▼)
<= (по-малко или равно)
>= (повече или равно)

Спойлер: Оператори за сравнение - ЩРАКНЕТЕ

= равно на:

"Примерът показва как можете да разберете дали текстът в дадена променлива е равен на друг текст, който сме посочили. Dim stroka As String = "Hello NubClub!" "Ако низът е равен на текста в двойни кавички, тогава ми покажете MsgBox If stroka = "Здравей NubClub!" Тогава MsgBox("Променливата е равна на текста, който търсим!") End If

<>неравенство:

"Примерът показва как можете да разберете дали текстът в дадена променлива е равен на друг текст, който сме посочили. Dim stroka As String = "Hello NubClub!" "Ако низът не е равен на текста в двойни кавички, тогава ми покажете MsgBox If низ<>"Аз съм начинаещ програмист" Тогава MsgBox("Текстът в променливата stroka не е равен на текста в кавички!") Край Ако

< Меньше:

"Примерът показва как можете да сравните две числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ако chislo2 е по-малко от chislo1, тогава ми покажете MsgBox If chislo2< chislo1 Then MsgBox("Значение переменной chislo2 меньше значения переменной chislo1") End If

>Още:

"Примерът показва как можете да сравните две числа. Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ако chislo1 е по-голямо от chislo2, тогава ми покажете MsgBox If chislo1 > chislo2 Then MsgBox("Стойността на променливата chislo1 е по-голяма от стойността на променливата chislo2") End If

<= Меньше или равно:

"Примерът показва как можете да сравните две числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ако chislo2 е по-малко или равно на chislo1, тогава ми покажете MsgBox If chislo2<= chislo1 Then MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1") End If

>= По-голямо или равно на:

"Примерът показва как можете да сравните две числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ако chislo1 е по-голямо или равно на chislo2, тогава ми покажете MsgBox If chislo1 >= chislo2 Then MsgBox("Стойността на променливата chislo1 е по-голямо или равно на стойността на променливата chislo2" ) End If

If...Then...Else оператор - Разклоняване
По-горе бяха доста прости примери за използване на If...Then условия, т.е. без разклоняване и без използване на Else.
Сега нека разгледаме примери с разклонения, те са малко по-сложни, но не можете без тях.
В основата си, използвайки Else, всички примери ще останат същите като по-горе, само ще бъде добавено малко разклоняване на програмата.
Какво ще се добави?
Ако преди това MsgBox се появяваше само когато условието е вярно, тогава с помощта на Else можете да извикате MsgBox дори когато условието не е вярно.

И така, пример.

"Примерът показва как можете да разберете дали текстът в дадена променлива е равен на друг текст, който сме посочили Dim stroka As String = "Здравейте NubClub!" "Ако низът е равен на текста в двойни кавички, тогава ми покажете MsgBox с текстът - Променливата е равна на текста, който търсим! "Ако низът НЕ е равен на текста в двойни кавички, тогава ми покажете MsgBox с текста - Променливата не е равна на текста, който търсим! Ако strka = "Здравей NubClub!" Тогава MsgBox("Променливата е равна към текста, който търсим!") Else MsgBox( "Променливата не е равна на текста, който търсим!") End If

Има моменти, когато имаме една променлива и няколко стойности с текст, които трябва да бъдат проверени. Какво да правим тогава? Събувай гащите и бягай?!
Не, това не е нашият метод
Има и по-елегантно решение. Можем да усложним нашето условие, като използваме ElseIf и по този начин да проверяваме колкото редове желаем, в разумни граници, разбира се. Ако има много линии, тогава на помощ ще дойдат цикли, с които ще работим в следващите уроци.

Нека разгледаме един пример.
Нека си представим, че трябва да създадем логика за уличен светофар, така че да работи и да показва цветове.
Как да го направим?
Всъщност не е трудно, ето един пример.

Условен оператор

Условен оператор VBA ви позволява да проверите определено условие и в зависимост от резултатите от проверката да извършите едно или друго действие. По този начин условният оператор е средство за разклоняване на изчислителния процес.

Във VBA Има 2 вида условни оператори: линейни и блокови.

1. Линейният условен оператор се използва за изпълнение на всеки един оператор, ако някое условие е вярно.

Синтактичната конструкция на линейния оператор има две форми: безалтернативна, алтернативна.

Структура на безалтернативен условен оператор (съкратена версия):

Ако<условие>Тогава<оператор 1>

Структура на алтернативния условен оператор (пълна версия):

Ако<условие>Тогава<оператор 1>Друго<оператор 2>

Където

Ако, Тогава, Друго - запазени думи (ако, тогава, иначе);

<условие>- произволен израз от логически тип;

<оператор 1>, <оператор 2>- всякакви езикови оператори VBA.

работа. Първо се изчислява условният израз<условие>. Ако има резултатВярно (вярно), тогава изпълнено<оператор 1>, А<оператор 2>пропуснати. Ако има резултатНевярно (невярно), напротив,<оператор 1>се пропуска и изпълнява<оператор 2>.

2. Блоков условен оператор се използва, когато, ако условието е вярно, трябва да се изпълнят няколко програмни оператора (блок от оператори). Блок операторът има две форми: без противопоставяне и алтернатива.

Структура на безспорния блоков оператор (кратка версия)

Ако<условие>Тогава

<оператор1>

<оператор2>

…………….

<оператор n >

Край Ако

Където

Край Ако - показва края на блок с инструкцииАко.

Алтернативна структура на блок изявление:

Ако<условие>Тогава

<оператор1>

<оператор2>

…………….

<оператор n >

Друго

<оператор1>

<оператор2>

…………….

<оператор n >

Край Ако

Пример 1.

Формулиране на проблема. Създайте персонализирана процедура за изчисляване на уравнение от формата в стандартен модул ax 2 + bx + c = 0.

1. Изходни данни:

a , b , c  R

Резултат: x1, x2  R .

2. Въведете следната персонализирана процедура в стандартния модул на проекта:

Private Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b^2 - 4 * a * c

Ако d >= 0 Тогава

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox (x1)

MsgBox (x2)

Друго

MsgBox("Няма решения")

Край Ако

End Sub

Алтернативен блок операторАко се използва в случаите, когато при изпълнено условие е необходимо да се изпълни един набор от програмни оператори, а когато не е изпълнено, друг.

IF изявления могат да бъдат вложени един в друг. Това операторно влагане се използва, когато трябва да тествате условие срещу друго условие, което е вярно.

Формат на вложен отчетАко:

Ако<условие1>Тогава

Ако<условие2>Тогава

<оператор1>

<оператор2>

…………….

<оператор n >

Друго

<оператор1>

<оператор2>

…………….

< оператор n>

Край Ако

Край Ако

Пример 2.

Формулиране на проблема. Създайте персонализирана функция в стандартен модул за намиране на максимума сред три дадени числа y 1 = a +2* b ; y 2 = a * b + c ; y 3 = c 2 + 1.

Технология за изпълнение на задачата:

1. Изходни данни:

a , b , c  R

Резултат: Макс  R.

2. Въведете следната персонализирана функция в стандартния модул на проекта:

Функция y (a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

Ако y1 > y2 Тогава

Ако y1 > y3 Тогава y = y1 В противен случай y = y3

Друго

Ако y2 > y3, тогава y = y2 В противен случай y = y3

Край Ако

Крайна функция

3. Изчисляване на корените на квадратно уравнение с произволни начални данни.

При използване на вложени изразиАко Важно е да не се бъркат опциите за комбиниране на условия. Правилото, което трябва да запомните е: алтернативаДруго се счита, че принадлежи на най-близкия операторАко , която няма филиалДруго.

Във VBA Проектиран за работа с множество операториАко . Тези оператори се използват в случаите, когато трябва да се вземат предвид повече условия в допълнение към първоначалното. Ето какво прави дизайнът:Ако...Тогава...Инако . За разлика от вложените изрази, конструкция на множество изразиАко ви позволява да проверите допълнително условие, ако първоначалното условие се оценява наНевярно.

Формат на запис:

Ако<условие1>Тогава

<оператор1>

ElseIf<условие2>Тогава

<оператор2>

Друго

<.оператор3>

EndIf

Пример 3.

Формулиране на проблема. Мениджърът по продажбите трябва да разработи функция, която му позволява да изчислява комисионни. Процентът на комисионната зависи от обема на продадените стоки и се изчислява по следното правило, представено в таблица 15.

Правила за изчисляване на комисионната

Седмичен обем на продажбите, rub.

Комисионна, %

0 до 9999

От 10000 до 19999

От 20000 до 39999

Повече от 40 000

Технология за изпълнение на задачата:

1. Изходни данни:

Продажби  Z .

Резултат: Комисионни Р.

2. Създайте персонализирана функция за изчисляване на комисионни в стандартния модул:

Комисионна за функция (продажби)

Ако продажбите<= 9999 Then

Комисионна = Продажби * 0,08

ElseIf Продажби<= 19999 Then

Комисионна = Продажби * 0,1

ElseIf Продажби<= 39999 Then

Комисионна = Продажби * 0,12

Друго

Комисионна = Продажби * 0,14

Край Ако

Крайна функция

3. Изчислете.



Свързани публикации