tévék. Konzolok. Projektorok és tartozékok. Technológiák. Digitális TV

Vba excel állapot ill. Feltételes kijelentés a VBA-ban. Ha feltétel, akkor kifejezés

A feltételes operátor használata szinte minden programozási nyelv szerves része. Valójában minden a matematikából származik, mivel kezdetben a programozási nyelvek különféle problémák megoldásának eszközeiként jöttek létre. Azonnal mondom, hogy a cikk unalmas és érdektelen Egyszerűen fizikailag lehetetlen bármi újat kicsikarni a programozásból, különösen az operátorok leírásából, de kitalálok valamit. Így a VBA nyelvben az if utasítást használják a feltételek ellenőrzésére, amelyek többféle változatban létezhetnek. De először egy kis humor...

Egy nyúl fut át ​​az erdőn, és látunk egy medvét, aki könyvet olvas. A nyúl megkérdezi: „Clubfoot, mit olvasol?” Okos pillantással válaszol: „Logika”. Kosoy meglepettnek látszik: „Mi a logika?” – No, nézd – mondja a medve:

  • M: Van gyufád?
  • Z: Nem
  • M: Szóval nem dohányzol
  • Z: Igen!
  • M: Ha nem dohányzik, akkor nincs plusz költőpénz
  • Z: Helyes!
  • M: Szóval lányok után jársz?
  • Z: Hát persze!
  • M: És mivel a lányok után jársz, ez azt jelenti, hogy nem vagy impotens!
  • Z: Ez megint így van!

A nyúl örült egy ilyen okos könyvnek, és megkérte a lúdtalpat, hogy olvassa el. Elégedetten sétál át az erdőn és ujjong, majd egy farkas jön feléje. A nyúl úgy döntött, hogy megpróbálja a logikát Gray-n, és megkérdezi tőle:

  • Z: Vannak gyufáid?
  • B: Igen
  • Z: Szóval te impotens vagy!

Nos, igen, ahogy emlékeztem, elmeséltem újra a viccet

Oké, most menjünk az elméletbe...

1. lehetőség. A VBA ha feltételes utasításának legegyszerűbb használata az, amikor egy feltételt ellenőriznek, és ha igaz, akkor egy kifejezés végrehajtásra kerül:

Ha feltétel, akkor kifejezés

2. lehetőség. Előfordulhat olyan helyzet, amikor egy feltétel ellenőrzése után több kifejezést kell végrehajtani, ebben az esetben az if utasítás a következő alakot ölti:

Ha feltétel akkor

1. kifejezés

2. kifejezés

N kifejezés

Amint látható, ebben az esetben az if ... end if záró blokkja akkor is releváns, ha az utasítások egymásba vannak ágyazva.

3. lehetőség: A beágyazott feltételes utasítások létrehozásának elkerülése érdekében a következő konstrukciót használjuk:

Ha feltétel akkor

1. kifejezés

2. kifejezés

Itt minden rendkívül egyszerű: ha a feltétel igaz, akkor az első kifejezés végrehajtásra kerül, ha nem, a második. Érdemes megjegyezni, hogy a feltétel ellenőrzése után több állítás következhet, mint a fenti opciónál.

4. lehetőség: Több feltétel ellenőrzése:

Ha az 1. feltétel akkor

Kifejezések 1

ElseHa 2. feltétel akkor

Kifejezések 2

ElseHa 3. feltétel akkor

Kifejezések 3

A működési logika a következő: először az első feltételt ellenőrizzük, ha igaz, akkor az első kifejezések végrehajtásra kerülnek, majd az operátorra való áttérés következik, ami az End If után következik. Ha az első feltétel nem teljesül, a második ellenőrzött, és így tovább, az Else kifejezés használata a végén nem kötelező, ezt követheti egy utasítás, amelyet akkor kell végrehajtani, ha az előző feltétel egyike sem teljesül.

Oké, most írjunk egy egyszerű példát a VBA if then construct használatára. Hozzon létre egy űrlapot a Visual Basic for Applications szerkesztőben, és adjon hozzá három szövegcímkét () és egy gombot () a felületéhez. A kódszerkesztőben ezt írjuk:

Privát al GetSub() Dim MySumm As Integer Dim MyVar As Byte MyVar = 0 Do While MySumm<= 10000 MySumm = MySumm + 1 If MySumm = 10 Then Label1.Caption = "Az összeg elérte a 10-et" ElseIf MySumm = 100 Akkor Label2.Caption = "Az összeg elérte a 100-at" ElseIf MySumm = 1000 Akkor Label3.Caption = "Az összeg elérte az 1000-et" Else Label4.Caption = "Elért érték"& Sajátösszeg vége 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.Fon3 Label2.Fon. ForeColor = vbGreen Label3.Caption = "" Label3.FontSize = 13 Label3.ForeColor = vbBlue Label4.Caption = "" Label4.FontSize = 13 CommandButton1.Caption = "Futtatás" End Sub

A GetSub eljárásban ciklust használunk, a ciklus végrehajtásának feltétele, hogy a MySumm változó értéke kisebb vagy pontosan 10000 legyen. Maga a ciklus törzse VBA if then utasításokat használ több opcióval. A feltételek ellenőrzése: ha az összeg eléri a 10-es értéket, akkor az első szövegmezőbe írjon egy információt, ha 100 - egy másik információt, ha 1000 - a harmadik információt, ellenkező esetben - írja be az adatot a negyedik szöveg Caption tulajdonságába mező.

Egysoros és többsoros If...Then...Else utasításkonstrukciók és VBA Excel kódban használt IIf függvény - szintaxis, összetevők, példák.

Ha...akkor...Else nyilatkozat

Operátor Ha...akkor...egyébkéntúgy van kialakítva, hogy a vezérlést átadja az egyik kezelőblokknak az ellenőrzött feltételek eredményeitől függően.

Egysoros felépítés

Operátor Ha...akkor...egyébként kulcsszavak nélkül használható egysoros konstrukcióban Más, Vége Ha.

Az egysoros If...Then... szintaxis

Ha[állapot] Majd[üzemeltetők]

Egysoros alkatrészek Ha...akkor...

  • állapot Igaz vagy Hamis;
  • operátorok állapotértéket ad vissza Igaz;

Ha az alkatrész állapotértéket ad vissza Hamis, építőipari üzemeltetők blokkja Ha...akkor...

1. példa

Sub primer1() Dim d As Integer, a As String d = InputBox("Írjon be egy számot 1-től 20-ig", "Példa 1", 1) Ha d > 10 Akkor a = "A " & d & " szám nagyobb mint 10" MsgBox a End Sub

Többsoros felépítés

Többsoros If...Then...Else konstrukció szintaxisa

Ha[állapot] Majd[üzemeltetők] ElseIf[állapot] Majd[operátorok] ----------------- Más[üzemeltetők] Vége Ha

Többsoros kialakítás összetevői Ha...akkor...egyébként:

  • állapot- a kulcsszót követő numerikus vagy karakterlánc kifejezés Ha vagy ElseIfés logikai értéket ad vissza Igaz vagy Hamis;
  • operátorok- VBA Excel kód utasítások blokkja, amely akkor fut le, ha az összetevő állapotértéket ad vissza Igaz.
  • pontozott vonal további építőelemeket jelöl egy karakterláncból ElseIf [feltétel] Akkorés húrok [üzemeltetők];
  • állításblokk a kulcsszó után Más amúgy végrehajtva, de a kódblokkot a sorból Másés húrok [üzemeltetők] opcionális és elhagyható.

Ha az alkatrész állapotértéket ad vissza Hamis, a következő blokk az építőipari szereplők Ha...akkor...egyébként kihagyásra kerül, és a programvezérlés átkerül a következő kódsorba.

A többsoros kialakítás legegyszerűbb változata Ha...akkor...egyébként:

Ha[állapot] Majd[üzemeltetők] Más[üzemeltetők] Vége Ha

2. példa

Sub primer2() Dim d As Integer, a As String d = InputBox("Írjon be egy számot 1-től 40-ig", "Példa 2", 1) Ha d< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 És d< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 És d< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

IIf funkció

Funkció IIf egy adott feltételt ellenőrzi, és a teszt eredményétől függően értéket ad vissza.

Függvény szintaxis

IIf([feltétel], [ha igaz], [ha hamis])

Az IIf függvény összetevői

  • állapot- egy numerikus vagy karakterlánc-kifejezés, amely logikai értéket ad vissza Igaz vagy Hamis;
  • ha Igaz IIf, Ha állapot visszaadott értéket Igaz;
  • ha Hamis- a függvény által visszaadott érték IIf, Ha állapot visszaadott értéket Hamis.

3. példa

Sub primer3() Dim d As Integer, a As String d = InputBox("Írjon be egy számot 1-től 20-ig", "Példa 3", 1) a = IIf(d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

Ha rákattint a „Mégse” gombra, vagy bezárja az InputBox párbeszédpanelt a példák közül egy kereszttel, hiba keletkezik, mivel ezekben az esetekben üres karakterláncot ad vissza. Üres karakterlánc hozzárendelése egy egész d változóhoz hibát okoz. Ha a párbeszédablakban az „OK” gombra kattint, a VBA Excel automatikusan átalakítja a beviteli mezőbe szöveges formátumban beírt számokat a d változó numerikus formátumára.

Az Excel VBA-ban használt legfontosabb feltételes operátorok az operátorok Ha... AkkorÉs Válassza a Case lehetőséget. Mindkét kifejezés egy vagy több feltételt tesztel, és az eredménytől függően különböző műveleteket hajt végre. Erről a két feltételes operátorról a következőkben többet fogunk beszélni.

"Ha... Akkor" utasítás a Visual Basicben

Operátor Ha... Akkor ellenőrzi a feltételt, és ha IGAZ, akkor a megadott műveletsor végrehajtásra kerül. Olyan műveletek halmaza is meghatározható, amelyeket akkor kell végrehajtani, ha a feltétel hamis (FALSE).

Operátori szintaxis Ha... Akkorígy:

Ha Feltétel1 Majd
Intézkedések, ha az 1. feltétel teljesül
ElseIf Feltétel2 Majd
Intézkedések, ha a 2. feltétel teljesül
Más
Intézkedések, ha egyik feltétel sem teljesül
Vége Ha

Ebben a kifejezésben az elemek ElseIfÉs Más kezelői feltételek nem használhatók, ha nem szükségesek.

Az alábbiakban egy példa látható, amelyben az operátor használatával Ha... Akkor Az aktív cella kitöltési színe a benne lévő értéktől függően változik:

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

Vegye figyelembe, hogy amint a feltétel igaz, a feltételes utasítás végrehajtása megszakad. Ezért ha a változó értéke ActiveCell 5-nél kisebb, akkor az első feltétel igaz lesz, és a cella zöldre vált. Ezt követően a nyilatkozat végrehajtása Ha... Akkor megszakad, és a fennmaradó feltételeket nem ellenőrzi.

Válassza a Case Statement lehetőséget a Visual Basicben

Operátor Válassza a Case lehetőséget operátorhoz hasonló Ha... Akkor abban is, hogy ellenőrzi a feltétel igazságtartalmát és az eredménytől függően választ egyet a cselekvési lehetőségek közül.

Operátori szintaxis Válassza a Case lehetőségetígy:

Válassza a Case lehetőséget Kifejezés
Ügy Érték1
Műveletek, ha a kifejezés eredménye megegyezik az Érték1 értékkel
Ügy Érték2
Műveletek, ha a kifejezés eredménye megegyezik az Érték2-vel

Más eset
Műveletek, ha a kifejezés eredménye nem egyezik a felsorolt ​​értékek egyikével sem
Vége kiválasztása

Elem Más eset opcionális, de ajánlott váratlan értékek kezelésére.

A következő példában a konstrukció használatával Válassza a Case lehetőséget Az aktuális cella kitöltési színe a benne lévő értéktől függően változik:

Válassza a Case ActiveCell.Value Case Is lehetőséget<= 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

A fenti példa bemutatja, hogyan állíthat be értéket egy elemhez különböző módokon Ügy tervezésben Válassza a Case lehetőséget. Ezek a módszerek:

Case Is<= 5 Így a kulcsszó használatával Case Is ellenőrizheti, hogy az érték megfelel-e Kifejezések a forma állapota <=5 .
6., 7., 8., 9. eset Így ellenőrizheti, hogy az érték egyezik-e Kifejezések a felsorolt ​​értékek valamelyikével. A felsorolt ​​értékek vesszővel vannak elválasztva.
10. eset Ez ellenőrzi, hogy az érték egyezik-e Kifejezések adott értékkel.
11-20. eset Így írhat egy kifejezést annak ellenőrzésére, hogy az érték megfelel-e Kifejezések a forma állapota 11-től 20-ig(egyenértékű a „11<=значение<=20”).
Más eset Így, a kulcsszó használatával Más, a műveletek akkor jelennek meg, ha az érték Kifejezések nem egyezik a felsorolt ​​lehetőségek egyikével sem Ügy.

Amint az egyik feltétel megtalálható, a megfelelő műveletek végrehajtásra kerülnek, és kilép a szerkezetből Válassza a Case lehetőséget. Vagyis minden esetben a felsorolt ​​ágak közül csak egy kerül végrehajtásra Ügy.

Ha...Akkor...Egyéb kijelentés.

Ez a lecke az operátorok témájára összpontosít. Elsősorban az If...Akkor...Else operátorral fogunk megismerkedni, illetve az aritmetikai és összehasonlító operátorokkal is, amelyek nélkül nem tudjuk használni az If...Then...Else operátort. a lehető legnagyobb mértékben.

A Visual Basic meglehetősen sok különböző operátorral rendelkezik, amelyek közül néhány még egy tapasztalt programozó agyát is képes felforralni. Hogy ne „forrjunk fel”, csak a legalapvetőbb operátorokat vesszük figyelembe, amelyeken a programok 95%-a működik, a fennmaradó operátorokat szükség szerint tanulmányozzuk, így nem kell egy egész tankönyvet memorizálnia, és azonnal továbbléphet gyakorlati gyakorlatok.

A lecke közzétételével feltételezem, hogy ismeri az általános iskolai matematikát.
Milyen tudás? Ezek ugyanazok a példák, amelyekben kivontunk, összeadtunk, szoroztunk,... Emlékszel még erre? Nagy! Ez azt jelenti, hogy van még puskapor a lombikokban.

Mielőtt elkezdené az If...Then...Else operátor tanulmányozását, meg kell ismerkednie az aritmetikai és logikai operátorokkal, amelyek nélkül nem tudjuk alkalmazni az If...Then...Else operátort a mély szemszögéből. gyakorlat. Oké, elég az unalmas instrukciókból és kitérőkből, dőljön hátra, lássuk a dolgot!

Aritmetikai operátorok
Ezen operátorok használatával; oszt, szoroz, összead stb.
Itt minden olyan egyszerű, mint az általános iskolában.

+ (kiegészítés)
- (kivonás)
* (szorzás)
/ (felosztás maradékkal) az iskolában az osztótábla ez a jel volt : emlékezzen ezekre a különbségekre, és ne essen zavarba
\ (egész osztás, maradék nélkül)

Összehasonlító operátorok
Ezek nagyon fontos szereplők. Ezek az operátorok használhatók számok, karakterláncok és egyéb adatok összehasonlítására. Összehasonlító operátorok nélkül lehetetlen logikát vagy elágazást építeni egy programban.
Fontos megjegyezni, hogy az összehasonlító operátorok összehasonlítanak két kifejezést, és egy logikai értéket adnak vissza True (ha a feltétel igaz) és False (ha a feltétel nem igaz) formájában.
Az igaz angolul fordítva azt jelenti: Igazság
A hamis angol fordításban azt jelenti: hazugság
Rögtön ez érthetetlennek tűnhet, de ne aggódj, egy kicsit később meg fogod érteni, mit jelent ez a sok ördög.

= (egyenlő)
Az első kifejezés értéke megegyezik a második kifejezés értékével, vagy lehet két számítás összeadás/kivonás/... eredménye.

<> (egyenlőtlenség)
Az első kifejezés értéke nem egyenlő a második kifejezés értékével

< (kevesebb)
Az első kifejezés értéke kisebb, mint a második kifejezés értéke

> (több)
Az első kifejezés értéke nagyobb, mint a másodiké

<= (kisebb vagy egyenlő)
Az első kifejezés értéke kisebb vagy egyenlő a második értékével

>=
(nagyobb vagy egyenlő)
Az első kifejezés értéke nagyobb vagy egyenlő a második értékével

Látom, látom, hogy már egy kicsit félsz, valójában nincs semmi ijesztő!
Olvasson tovább, és látni fogja, hogy minden nagyon egyszerű.
Az alábbiakban mindent alaposan alátámasztunk példákkal és gyakorlattal.
Tehát, figyelembe vettük az aritmetikai és logikai operátorokat, most közvetlenül az If...Then...Melse operátorhoz léphetünk

Ha...akkor...Else nyilatkozat
Először nézzük meg, mit jelentenek az operátor szavai angolról oroszra fordítva.
Az If-t If-nek fordítják
Akkor ezt úgy fordítják
Az Else fordítása Másként

Mire használják az If...Then...Melse utasítást?
Ezzel az operátorral leágazódhat a programok nélkül ez az operátor, nem lehet komoly programot írni.
Térjünk át a tipikus példákra.

Hogyan dolgozza fel a számítógép az If... utasítást?
Tegyük fel, hogy két változónk van:

Dim var1 = 10 Dim var2 = 5

és tegyük fel, hogy van egy feltételünk:

If var1 > var2 Then MsgBox("Igen, a var1 nagyobb, mint a var2") End If

Hogyan működik a fent látható állapot?
A számítógép megnézi a var1 és var2 változókat, ha a var1 valóban nagyobb, mint a var2, akkor a feltétel igaz (True), és a számítógép az MsgBoxot mutatja.
Ha a feltétel nem igaz (hamis), a számítógép nem jeleníti meg az MsgBox-ot.
Ezt úgy ellenőrizheti, hogy a változók értékét más számokra módosítja, így a feltétel nem igaz, akkor nem fogjuk látni az MsgBox-ot.

Figyelem!

A szükséges példák tanulmányozásához.
Miután elkészített egy projektet az űrlapon, kattintson duplán a gombra a bal egérgombbal, megnyílik a kódszerkesztő, és a kurzor arra a helyre kerül, ahová az alábbi példákból be kell szúrni a kódot. .
A kód beillesztése után meg kell néznie az eredményt az űrlapon található gombra kattintva.


Példák
Ezután a példákat az alábbiakban megadott sorrendben adjuk meg.

Aritmetikai operátorok
+ (kiegészítés)
- (kivonás)
* (szorzás)
/ (felosztás)

Spoiler: Számtani példák - KATTINTSON

+ Kiegészítés:

"A példa bemutatja, hogyan adhat hozzá két számot Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 + chislo2 MsgBox(eredmény)

- Kivonás:

"A példa bemutatja, hogyan kaphatja meg két szám különbségét (kivonás) Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 - chislo2 MsgBox(eredmény)

* Szorzás:

"A példa bemutatja, hogyan szorozhat meg egy számot egy másikkal Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 * chislo2 MsgBox(eredmény)

/ Osztály:

"A példa bemutatja, hogyan oszthat el egy számot egy másikkal Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 / chislo2 MsgBox(resultat)

Összehasonlító operátorok
= (egyenlő)
<> (egyenlőtlenség)
< (kevesebb)
> (több)
<= (kisebb vagy egyenlő)
>= (nagyobb vagy egyenlő)

Spoiler: Összehasonlító operátorok – KATTINTSON

= Egyenlő:

"A példa bemutatja, hogyan tudhatja meg, hogy egy változóban lévő szöveg egyenlő-e egy másik szöveggel, amelyet megadtunk Dim stroka As String = "Hello NubClub!" "Ha a karakterlánc megegyezik a dupla idézőjelben lévő szöveggel, akkor mutasd meg az MsgBox If stroka = "Helló NubClub!" Akkor MsgBox("A változó megegyezik a keresett szöveggel!") End If

<>Egyenlőtlenség:

"A példa bemutatja, hogyan tudhatja meg, hogy egy változóban lévő szöveg egyenlő-e egy másik szöveggel, amelyet megadtunk Dim stroka As String = "Hello NubClub!" "Ha a karakterlánc nem egyenlő a dupla idézőjelben lévő szöveggel, akkor mutasd meg az MsgBox Ha húr<>"Kezdő programozó vagyok" Akkor MsgBox("A stroka változóban lévő szöveg nem egyenlő az idézőjelben lévő szöveggel!") End If

< Меньше:

"A példa bemutatja, hogyan hasonlíthat össze két számot Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ha a chislo2 kisebb, mint a chislo1, akkor mutassa meg az MsgBox Ha chislo2< chislo1 Then MsgBox("Значение переменной chislo2 меньше значения переменной chislo1") End If

> Tovább:

"A példa bemutatja, hogyan hasonlíthat össze két számot Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ha chislo1 nagyobb mint chislo2, akkor mutasd meg MsgBox If chislo1 > chislo2 Then MsgBox("A chislo1 változó értéke nagyobb, mint a chislo2 változó értéke") End If

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

"A példa bemutatja, hogyan hasonlíthat össze két számot Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ha chislo2 kisebb vagy egyenlő, mint chislo1, akkor mutassa meg az MsgBox If chislo2<= chislo1 Then MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1") End If

>= Nagyobb vagy egyenlő:

"A példa bemutatja, hogyan hasonlíthat össze két számot Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Ha chislo1 nagyobb vagy egyenlő, mint chislo2, akkor mutassa meg MsgBox If chislo1 >= chislo2 Then MsgBox("A változó értéke chislo1 nagyobb vagy egyenlő a chislo2 változó értékével" ) End If

Ha...Akkor...Else nyilatkozat - Elágazás
A fentiekben meglehetősen egyszerű példák voltak az If...Then feltételek használatára, pl. elágazás és az Else használata nélkül.
Most nézzünk példákat elágazással, ezek kicsit bonyolultabbak, de nem megy nélkülük.
Lényegében, az Else használatával, minden példa ugyanaz marad, mint fent, csak a program egy kis elágazása lesz hozzáadva.
Mi lesz hozzá?
Ha korábban az MsgBox csak akkor jelent meg, ha a feltétel igaz volt, akkor az Else használatával akkor is meghívhatja az MsgBoxot, ha a feltétel nem igaz.

És hát egy példa.

"A példa bemutatja, hogyan tudhatja meg, hogy egy változóban lévő szöveg egyenlő-e egy másik szöveggel, amelyet megadtunk Dim stroka As String = "Hello NubClub!" "Ha a karakterlánc megegyezik a dupla idézőjelben lévő szöveggel, akkor mutasd meg az MsgBox-ot a szöveg - A változó megegyezik a keresett szöveggel! "Ha az strka NEM egyenlő a dupla idézőjeles szöveggel, akkor mutasd meg az MsgBox-ot a szöveggel - A változó nem egyenlő a keresett szöveggel! If strka = "Hello NubClub!" Akkor MsgBox("A változó egyenlő a keresett szövegre!") Else MsgBox( "A változó nem egyenlő a keresett szöveggel!") End If

Vannak esetek, amikor egy változónk és több szöveges értékünk van, amelyeket ellenőrizni kell. Mit kell ilyenkor tenni? Vedd le a nadrágodat és rohanj?!
Nem, ez nem a mi módszerünk
Van ennél elegánsabb megoldás is. Bonyolíthatjuk állapotunkat az ElseIf használatával, és így tetszőleges számú sort ellenőrizhetünk, természetesen ésszerű határokon belül. Ha sok a sor, akkor hurkok fognak segíteni, amelyekkel a következő leckékben fogunk dolgozni.

Nézzünk egy példát.
Képzeljük el, hogy logikát kell alkotnunk egy utcai közlekedési lámpához, hogy működjön és színeket mutasson.
Hogyan kell ezt csinálni?
Valójában nem nehéz, íme egy példa.

Feltételes operátor

Feltételes operátor VBA lehetővé teszi egy bizonyos állapot ellenőrzését, és az ellenőrzés eredményétől függően egy vagy másik művelet végrehajtását. Így a feltételes operátor a számítási folyamat elágazásának eszköze.

VBA-ban A feltételes utasításoknak két típusa van: lineáris és blokk.

1. A lineáris feltételes utasítás bármely utasítás végrehajtására használható, ha valamelyik feltétel igaz.

A lineáris operátor szintaktikai felépítésének két formája van: nem-alternatív, alternatív.

Egy nem alternatív feltételes operátor szerkezete (rövid változat):

Ha<условие>Majd<оператор 1>

Az alternatív feltételes utasítás szerkezete (teljes verzió):

Ha<условие>Majd<оператор 1>Más<оператор 2>

Ahol

Ha, Akkor, Más - fenntartott szavak (ha, akkor, különben);

<условие>- logikai típusú tetszőleges kifejezés;

<оператор 1>, <оператор 2>- bármely nyelvi operátor VBA.

Munka. Először a feltételes kifejezést értékeljük ki<условие>. Ha van eredmény Igaz (igaz), akkor igaz<оператор 1>, A<оператор 2>átugrott. Ha van eredmény Hamis (hamis), éppen ellenkezőleg,<оператор 1>kihagyásra kerül és végrehajtódik<оператор 2>.

2. Blokkfeltételes operátort akkor használunk, ha a feltétel igaza esetén több programutasítást kell végrehajtani (egy utasításblokk). A blokk operátornak két formája van: nem ellentétes és alternatív.

A nem vitatott blokk operátor felépítése (rövid változat)

Ha<условие>Majd

<оператор1>

<оператор2>

…………….

<оператор n >

Vége Ha

Ahol

Vége Ha - egy utasításblokk végét jelzi Ha.

Alternatív blokk utasítás szerkezet:

Ha<условие>Majd

<оператор1>

<оператор2>

…………….

<оператор n >

Más

<оператор1>

<оператор2>

…………….

<оператор n >

Vége Ha

1. példa

A probléma megfogalmazása. Hozzon létre egy egyéni eljárást az űrlap egyenletének kiszámításához egy szabványos modulban ax 2 + bx + c = 0.

1. Kiinduló adatok:

a , b , c  R

Eredmény: x1, x2  R .

2. Írja be a következő egyéni eljárást a szabványos projektmodulba:

Privát Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b^2 - 4 * a * c

Ha d >= 0 Akkor

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

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

MsgBox (x1)

MsgBox (x2)

Más

MsgBox ("Nincs megoldás")

Vége Ha

Vége Sub

Alternatív blokk operátor Ha olyan esetekben használatos, amikor egy feltétel teljesülésekor egy programoperátor-készletet kell végrehajtani, és ha nem teljesül, akkor egy másikat.

IF állítások egymásba ágyazhatók. Ez az operátorbeágyazás akkor használatos, ha egy feltételt egy másik igaz feltétellel kell tesztelni.

Beágyazott nyilatkozat formátum Ha:

Ha<условие1>Majd

Ha<условие2>Majd

<оператор1>

<оператор2>

…………….

<оператор n >

Más

<оператор1>

<оператор2>

…………….

< оператор n>

Vége Ha

Vége Ha

2. példa

A probléma megfogalmazása. Hozzon létre egy egyedi függvényt egy szabványos modulban, hogy megtalálja a három megadott szám közül a maximumot y1 = a+2*b; y2 = a*b+c; y 3 = c 2 + 1.

Feladat végrehajtási technológia:

1. Kiinduló adatok:

a , b , c  R

Eredmény: Max  R.

2. Írja be a következő egyéni függvényt a szabványos projektmodulba:

y függvény (a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

Ha y1 > y2 Akkor

Ha y1 > y3, akkor y = y1 Különben y = y3

Más

Ha y2 > y3, akkor y = y2 Különben y = y3

Vége Ha

Vége funkció

3.Számítsa ki egy tetszőleges kezdeti adatokkal rendelkező másodfokú egyenlet gyökereit!

Beágyazott utasítások használatakor Ha Fontos, hogy ne keverjük össze a feltételek kombinálásának lehetőségeit. A szabály, amit emlékezni kell: alternatív Más a legközelebbi kezelőhöz tartozónak tekintendő Ha , amelynek nincs ága Más.

VBA-ban Több operátoros működésre tervezték Ha . Ezeket az operátorokat olyan esetekben használják, amikor az eredeti mellett több feltételt is figyelembe kell venni. Ez a következő kialakítással történik: Ha...akkor...ElseIf . Ellentétben a beágyazott utasításokkal, többutasítási konstrukció Ha lehetővé teszi egy további feltétel ellenőrzését, ha az eredeti feltétel kiértékelődik Hamis.

Felvételi formátum:

Ha<условие1>Majd

<оператор1>

ElseIf<условие2>Majd

<оператор2>

Más

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

EndIf

3. példa

A probléma megfogalmazása. Az értékesítési vezetőnek ki kell dolgoznia egy olyan funkciót, amely lehetővé teszi számára a jutalékok kiszámítását. A jutalék százaléka az eladott áruk mennyiségétől függ, és a 15. táblázatban bemutatott alábbi szabály szerint kerül kiszámításra.

Jutalék számítási szabályok

Heti értékesítési mennyiség, dörzsölje.

Jutalék, %

0 és 9999 között

10000-től 19999-ig

20000-től 39999-ig

Több mint 40.000

Feladat végrehajtási technológia:

1. Kiinduló adatok:

Értékesítés  Z .

Eredmény: Jutalékok R .

2. Hozzon létre egy egyéni függvényt a jutalékok kiszámításához a standard modulban:

Funkció jutalék (értékesítés)

Ha Értékesítés<= 9999 Then

Jutalék = Értékesítés * 0,08

ElseIf Sales<= 19999 Then

Jutalék = Értékesítés * 0,1

ElseIf Sales<= 39999 Then

Jutalék = Értékesítés * 0,12

Más

Jutalék = Értékesítés * 0,14

Vége Ha

Vége funkció

3. Számítsa ki.



Kapcsolódó kiadványok