VBA operatoriai: paprastas pasirinkimas. Metodiniai teiginiai ir užduotys Vba Smart If teiginys

Plauti є dar labiau kreiva programuojant, skeveldros leidžia laimėti dії, pūdymas pagal nustatytus kriterijus (laimima tuo pačiu principu JEI Excel funkcijos).

Svarbiausia funkcija, kaip jūs klausiate proto JEI Ir iš karto stebimės, kaip tai veikia:

Jei [SMART HERE] Tada "=> YAKSHO umova vіrna, TODI "Instrukcijos, kaip "tiesa" Else "=> PRIEŠ KRITIMO "Instrukcijos, pavyzdžiui, "nesąmonė" Pabaiga, jei

Pereikime prie praktikos ir atsigręžkime į užpakalį, kuris mėgdžiojo mane pokyčių metu. Procedūros metafora buvo ta, kad ji atidarė dialogo langą, tarsi tai būtų viduryje nurodytos eilutės reikšmė F5:

Kaip įvesti raidę kambaryje F5, tse padaryti malonę. Mes norime ką nors išgelbėti.

Antriniai kintamieji () "Pakeitimo deklaravimas Dim pavardė kaip eilutė, vardas_vardas kaip eilutė, amžius kaip sveikas skaičius, eilutės_numeris Kaip sveikasis skaičius "Pakeitimo priskyrimas eilės_numerio pakeitimui = Diapazonas ("F5") + 1 pavardė = langeliai (eilutės_numeris, 1) eglė , 2) amžius = langeliai (eilutės_numeris, 3) "MsgBox dialogo lango pavardė & " " & vardas & "," & amžius & " metai" Pabaiga

Dodamo proto, yaku reverify - chi є įveskite reikšmę viduryje F5 numerį, priešais jį, nes kodas bus vikonano.

Pagreitiname funkciją IsSkaičius reverb mind:

Antriniai kintamieji () "Kokia reikšmė lankuose (komiksas F5) є yra skaitinė (I TAI SKAIČIUS, JEI Є BRIM), tada "tada If IsNumeric (diapazonas ("F5")) Tada "Pakeitimo deklaravimas Dim paskutinis_ , pirmasis_vardas Kaip Eilutė, amžius Kaip sveikasis skaičius, eilutės_numeris Kaip sveikasis skaičius "Priskirta reikšmė keisti eilutės_numeris = diapazonas ("F5") + 1 pavardė = langeliai (eilutės_numeris, 1) first_name = langeliai (eilutės_numeris, 2) amžius = langeliai (eilutė "MsgBox dialogo langas pavardė & " " & first_name & "," & amžius & " amžius" End If End Sub

Taip pat mums būtina užsirašyti nurodymus, tarsi protas nebūtų nusiteikęs:

Antriniai kintamieji () If IsNumeric (diapazonas ("F5")) Tada "Pakeitimo deklaravimas Dim pavardė kaip eilutė, vardas_vardas kaip eilutė, amžius kaip sveikas skaičius, eilutės numeris kaip sveikasis skaičius "Vertės priskyrimas pakeitimui eilutės_numeris = diapazonas + 1 last_name = langeliai (eilutės_numeris, 1) first_name = Cells (row_number, 2) age = Cells (row_number, 3) "MsgBox dialogo langas pavardė & " " & first_name & "," & age & " ro_v" Kita "Taigi nematykite "MsgBox dialogo lango : Prieš MsgBox „Įvesta vertė ir diapazonas („F5“) ir „Negalima patvirtinti!“ „ClearContents End If End Sub Sub

Dabar neskaitinės reikšmės kasdienių problemų nesukelia.

Pratsyyuyuchi su mūsų masyvu, kuris atkeršys 16 duomenų eilučių, mūsų puolimas bus reverbirtsі chi є eilės_numerio pakeitimas: "daugiau mažesnis arba daugiau 2" ir "mažiau mažesnis arba daugiau 17".

Trumpai pažvelkime į „povnyannya“ operatorius:

ir tsі korisnі operatoriai:

Dabar pamėginkime vieną geriausių protų IR tarp operatorių

Antriniai kintamieji () If IsNumeric (diapazonas ("F5")) Tada "Dim pavardė kaip eilutė, vardas_vardas kaip eilutė, amžius kaip sveikas skaičius, eilutės_numeris Kaip sveikasis skaičius eilutės_numeris = Diapazonas("F5") + 1 Jei eilutės_numeris > = 2 Ir eilutės_numeris

Jei norime savo makrokomandą padaryti praktiškesnę, galime ją pakeisti 17 pakeitimui, yak mistila b kіlkіst rowkіv. Tse leistų mums pridėti ir pašalinti eilutes iš masyvo nekeičiant odos ribos.

Norėdami ką nors pakeisti, galime sukurti pokytį nb_rows ir pridėkite šią funkciją.

Turiu pergalingą funkciją WorksheetFunction.CountA, kaip funkcijos analogas COUNTA pačioje „Excel“.

Norime, kad tai būtų funkcija, kuri pirmame stulpelyje paimtų keletą netuščių vidurių, užrašydama pakeitimo reikšmę nb_rows:

Antriniai kintamieji () If IsNumeric (diapazonas("F5")) Tada "YAKI NUMBER Dim pavardė kaip eilutė, vardas_vardas Kaip eilutė, amžius kaip sveikas skaičius, eilutės_numeris Kaip sveikasis skaičius Dim nb_rows As Integer eilutės_numeris = Diapazonas ("F5") = 1 Darbo lapelis. CountA (diapazonas (A:A)) "Funkcija skaičiuoti eilučių skaičių, jei eilutės_numeris > = 2 Ir eilutės_numeris

Kitaip

Kitaip suteikia galimybę pridėti papildomų parinkčių ir tada IF komandas:

Jei [CLEAN 1] Tada "=> YAKSCHO Umova 1 yra teisinga, TODI "Instrukcijos 1 ElseJei [CLEAN 2] Tada "=> YAKSCHO Umova 1 yra neteisinga, Ale Umova 2 yra teisinga, TODI "Instrukcijos 2 Else" => Else " Instrukcijos Jei

Jakšo UMOVI 1 vykonuetsya, 1 instrukcija bude vikonano ta atimti operatorių JEI(nuo kurio prasideda JEI jis baigiasi End If). Jakšo UMOVI 2įgyja prasmę" nesąmonė “, tada būsi vikonana 2 instrukcija ir tarsi ji paverstų savo velnią “ nesąmonė “, tada 3 instrukcija(pіd Kitas) bus vikonano.

Sub scores_comment() "Keisti pritemdytą pastabą kaip sveikąjį skaičių, rezultatas_komentarą kaip eilutę pastaba = diapazonas("A1") ElseIf pastaba = 5 Tada score_comment = "Garniy balas" ElseIf pastaba = 4 Tada score_comment = "Patenkinamas balas" ElseIf pastaba = 3 Tada score_comment = "Nesėkmingas balas" ElseIf pastaba = 2 Tada score_comment = "Blogas balas" = "Blogas rezultatas" Else score_comment = "Nulis balas" Pabaiga, jei "Komentaras vidutiniame B1 diapazone ("B1") = score_comment Pabaiga

Pasirinkite

Іsnuє alternatyvi vikoristany Jeigu s bagatma Kitaip instrukcijos, bet pati komanda Pasirinkite, kaip labiau kreiptis į tokias situacijas.

Pažvelkime į makrokomandos su operatoriumi užpakaliuką Pasirinkite:

Sub scores_comment() "Change Dim note As Integer , score_comment As String note = Range("A1") "Komentarai pagal balą Select Case Note"

Varto nurodo, kad galime laimėti ir su kitais rungtynių operatoriais:

Atvejis yra >= 6

Taikyti su skirtingomis reikšmėmis:

Atvejis yra = 6, 7 "kokia vertė = 6 arba 7 atvejis yra 6, 7" kokia reikšmė yra netinkama 6 arba 7 atvejis 6 iki 10

The IF funkcija VBA yra vienas dažniausiai naudojamų teiginių. IF funkcijos patikrina, ar tenkinama nurodyta sąlyga, ar ne. IF funkcija VBA veikia šiek tiek kitaip nei „Excel“. Programoje „Excel“ IF funkcijos turi dvi reikšmes: atšaukimo reikšmę, o tai reiškia, kad ji gali būti įvertinta kaip TRUE arba FALSE ir bus atnaujinta, kad būtų pagrįsta, ty IF( sąlyga, grąžinimo_vertė_jei_sąlygos_tiesa, grąžinimo_vertė_jei_sąlygos_klaidinga). Tačiau funkcija IF VBA yra tik pirmoji dalis, t.y. patikrinkite, ar sąlyga yra TRUE arba FALSE. Paspauskite bet kurį scenarijų, kaip paskirtas kitam TAD teiginiui.

Naudojant paprastą IF funkciją VBA

Štai pavyzdys IF funkcija. Šis VBA kodo taškas yra tiesiog patikrinimas, ar nurodyta sąlyga (ty 1 > 4) įvertinama kaip TRUE ar FALSE. Bet kokiu atveju, jei yra tik keletas instaliacijų, nėrimas bus suskirstytas į TRUE, kai pagalvysite apie tai. Bet kokiu atveju rezultatas bus rodomas ekrane. Kadangi funkcija buvo nustatyta į FALSE, VBA kodas nieko nedarys.

1
2
3
4
5

Papildoma IF_FUNCTION()
Jei 7 > 1 Tada
MsgBox "7 yra didesnis nei 1"
Pabaiga, jei
pabaigos sub

The TADA Teiginys iš esmės yra direktyva, nurodanti, kad veiksmai iš karto po jo turi būti vykdomi, jei sąlyga prieš pat if įvertinama kaip TRUE.

Funkcijos IF numatytoji END IF deklaracija, leidžianti programai žinoti, kad tai paskutinė funkcijos IF eilutė. Žemiau pateikta šiek tiek trumpesnė IF funkcijos forma. Atkreipkite dėmesį, kad sakinys END IF buvo pašalintas, todėl trys kodo eilutės buvo sujungtos į vieną.

Sub IF_FUNCTION_SHORT()
Jei 7 > 1, tada MsgBox "7 yra didesnis nei 1"
pabaigos sub

Tačiau ši forma turėtų būti naudojama tik tada, kai jos nėra KITAS arba KITAIP JEI reikia pareiškimų. Pažiūrėkime, kas jie yra ir kaip jie padeda pagerinti IF funkciją.

Vicorist IF funkcija su ELSE VBA

Tuo atveju, kai tai įmanoma, mes žinome, kad funkcija IF yra kalta, kad buvo sukurta iki nerimo pabaigos tik tuo atveju, jei protas yra įvertintas kaip TRUE. Bet vis tiek galvoji apie tuos, kad mažieji bus sukurti iš to, kad, kaip bus, tave pasitiks. Vienas iš būdų pasiekti, kad funkcija IF laimėtų ELSE teiginį. Paprasčiau tariant, ELSE teiginys priverčia programą atlikti ELSE bloke nurodytus veiksmus, kai sąlyga, nurodyta IF sąlygoje, įvertinama kaip FALSE.

Žemiau esančiame VBA kode, IF funkcijose įvertinama kaip false, ELSE bloke minimi stiliai vykdomi, todėl ekrane pasirodo pranešimas „1 yra mažesnis nei 4“. Prie bloko galima pridėti kelis veiksmus, kad visi būtų vykdomi vienas po kito.

1
2
3
4
5
6
7

Papildoma IF_ELSEIF_FUNCTION()
Jei 1 > 4 Tada

Kitas:
MsgBox "1 yra mažesnis nei 4"
Pabaiga, jei
pabaigos sub

Papildomoms IF funkcijoms su ELSEIF ir ELSE: VBA

ELSE teiginys gali būti patvirtintas ELSEIF teiginiams. Smarvė būdinga pakartotinai tikrinant konkrečius protus, o kadangi visi jie vertinami PILNAI, įrodymai pažymėti KITA protu, bus likutinių pritarimų. IF teiginys patikrins tam tikrą sąlygą. Pasirodo, kad tai FALSE, bus patikrinta pirmame ELSEIF teiginyje nurodyta sąlyga. Kaip smarvė prisiimant likimą to, su kuo, tavo manymu, paskirtas kitoje ELSEIF dalyje, bus susidorota, ir tada ne tik. IF ir ELSEIF sąlygose viskas nustatyta į FALSE, tik šiek tiek paminėta paskutiniame ELSE: blokas bus įvykdytas. Pakartotinai, kadangi dvokia keli teiginiai ELSEIF, tada pirmieji, kurių įvertinimas yra TRUE, bus atmesti, o praleidus vykdymo kodas bus sutrauktas į END IF sakinį. Nesvarbu, ar tai būtų didžiausi ELSEIF protai, kurie įvertinti TRUE, bus įvykdyti tik pirmieji, kurie įvertinti TRUE.

1
2
3
4
5
6
7
8
9
10
11


Jeigu< > tada
MsgBox "1 yra didesnis nei 4"
Kitaip< > tada

Kitaip< > tada

Kitas< >:

Pabaiga, jei
pabaigos sub

Tekstas rodomas žemiau, IF pažymimas pirmiausia. Kadangi įvertinimas yra FALSE, įvertinama pirmoji ELSEIF sąlyga, po kurios – antroji. Be vieno iš jų jie buvo įvertinti TRUE, Žingsniai paminėti ELSE: umova є įvykdyta.

1
2
3
4
5
6
7
8
9
10
11

Sub IF_ELSEIF_ELSE_FUNCTION()
Jei 1 > 4 Tada
MsgBox "1 yra didesnis nei 4"
ElseIf 2 > 4 Tada
MsgBox "2 yra didesnis nei 4"
ElseIf 3 > 4 Tada
MsgBox "3 yra didesnis nei 4"
Kitas:
MsgBox "1, 2 arba 3 - mažiau nei 4"
Pabaiga, jei
pabaigos sub

Greitas patarimas – kaip padidinti, IF teiginiai veikia greičiau

Šoninio kodo sumažinimas atrodo panašus. Du ELSEIF protai, atliekantys kitą funkciją, gali būti nuversti. Kuris iš VBA kodo, jūsų manymu, veikia greičiau?:
Pabaiga, jei
Toliau i
„MsgBox“ laikmatis – t
pabaigos sub

atsakymas yra tas, kad antrasis vykdomas daug greičiau nei pirmasis. Kodėl? Tas, kuriam reikia dviejų sekundžių sustoti judant per nelygias kodo eilutes prieš jį, toks, koks yra, įvertinamas kaip TRUE. Atsižvelkite į tai, kad ELSEIF yra pirmasis, kad TRUE bus įvykdytas ir nė viena iš kitų sąlygų neįvertinama, net jei jos taip pat turėtų būti įvertintos kaip TRUE. Pirmoje VBA kodo pozicijoje ELSEIF funkcija on-line 6 įvertinama kaip TRUE, o antroje eilutėje 5 atitinka kriterijus. Tas, kurio intelektas yra didesnis, mažesnis, yra įvertintas kaip TRUE, anksčiau jis turėtų būti įtrauktas į VBA kodą, o visa kita yra ta pati.

Vienos eilės ta kelių eilučių konstrukcija If...Then...Else operatoriaus ir funkcijos IIf, kurie yra įprasti Excel VBA kode – sintaksė, komponentai, programos.

Jei...Tada...Kitas pareiškimas

operatorius Jei...Tada...Kitaip valdymo perdavimo priskyrimas vienam iš operatorių blokų priklauso nuo minčių pasukimo rezultatų.

Vienos eilės konstrukcija

operatorius Jei...Tada...Kitaip gali laimėti vienos eilutės dizaine be raktinių žodžių Kitas, Pabaiga, jei.

Vienos eilutės konstrukcijos sintaksė Jei...Tada...

Jeigu[umova] Tada[operatorius]

Vienos eilės konstrukciniai komponentai Jei tada...

  • umova Tiesa arba Netiesa;
  • operatoriai umova pasukti vertę Tiesa;

Kaip komponentas umova pasukti vertę Netiesa, teiginių blokas konstrukcijoje Jei tada...

užpakalis 1

Sub pradmuo1() Dim d Kaip sveikasis skaičius, a As String d = InputBox ("Įveskite skaičių nuo 1 iki 20", "1 pavyzdys", 1) Jei d > 10 Tada a = "Skaičius " & d & " yra didesnis nei 10 " MsgBox a End Sub

Bagatoryadna statyba

Sekos konstrukcijos If...Then...Else sintaksė

Jeigu[umova] Tada[operatorius] Kitaip[umova] Tada[operatorius] ---------------- Kitas[operatorius] Pabaiga, jei

Bagatoriumo konstrukcijos komponentai Jei...Tada...Kitaip:

  • umova- skaitinė arba eilutės išraiška po raktinio žodžio Jeigu arba Kitaip kad virsta loginė prasmė Tiesa arba Netiesa;
  • operatoriai- teiginių blokas VBA Excel kode, kuris naudojamas kaip komponentas umova pasukti vertę Tiesa.
  • punktyras paskirti papildomus konstrukcinius eilės blokus ElseIf [umova] Tada kad eilės [operatorius];
  • teiginių blokas po raktinio žodžio Kitas vykonuetsya bet kokia vipadka, bet struktūrinis blokas prie įkrovimo kodo Kitas kad eilės [operatorius] ne obov'azkovim ir gali būti praleidimai.

Kaip komponentas umova pasukti vertę Netiesa, po kurio eina operatorių blokas statyboje Jei...Tada...Kitaip kad programos valdymas praleidžiamas ir perkeliamas į kitą kodo eilutę.

Paprasčiausias bagažo eilės dizaino variantas Jei...Tada...Kitaip:

Jeigu[umova] Tada[operatorius] Kitas[operatorius] Pabaiga, jei

užpakalis 2

Sub pradmuo2() Dim d Kaip sveikasis skaičius, a As String d = InputBox("Įveskite skaičių nuo 1 iki 40", "2 atvejis", 1) Jei d< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 Ir d< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 Ir d< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

Funkcija IIf

Funkcija Jeigu pakartotinai tikrinti pateiktą protą ir vėl ir vėl vartyti vertę pagal pakartotinio patikrinimo rezultatą.

Funkcijos sintaksė

Jeigu([umova], [kas yra tiesa], [kas yra klaidinga])

Funkcijos IIf komponentai

  • umova- skaitinė arba eilinė išraiška, kuri paverčia logines reikšmes Tiesa arba Netiesa;
  • Tiksliai Tiesa Jeigu, Kaip umova pasuko vertę Tiesa;
  • Netiesa- reikšmė, kaip pasukti funkciją Jeigu, Kaip umova pasuko vertę Netiesa.

užpakalis 3

Sub pradmuo3() Dim d Kaip sveikasis skaičius, a As String d = InputBox("Įveskite skaičių nuo 1 iki 20", "3 atvejis", 1) a = IIf(d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

Paspaudus mygtuką „Atšaukti“ arba uždarius įvesties langelio dialogo langą su kryželiu, sugeneruojamas atleidimas, todėl atliekant šiuos veiksmus pasukama tuščia eilutė. Tuščios pakeitimų eilutės priskyrimas D tipui sveikasis skaičius reikalauja atleidimo. Paspaudus dialogo lango mygtuką „Gerai“, į įvesties lauką įvestą skaičių tekstiniu formatu, VBA Excel automatiškai konvertuoja į skaitinį pakeitimo formatą d.

Pagrindiniai judėjimo VBA operatoriai

Komentarai (0)

3.1. Įrašų operatorių taisyklės

Įrašydami operatorius laikykitės šių taisyklių:

Naujo operatoriaus oda įrašoma iš naujos eilutės.

Norėdami vienoje eilutėje parašyti daugybę operatorių, jie suskirstomi tarpusavyje dvigubu (:).

Jei operatorius nejuda vienoje eilutėje, tada eilutės pabaigoje reikia įdėti tarpo ženklą (_), o tada tęsti dalį, kuri netilpo kitoje eilutėje.

3.2. Kvietimų operatorius

Operatorius traukia pergalingas, tarsi keičiasi, reikia suteikti naują vertę. Win gali įžeidžianti sintaksė:

IM'YA_ZMINNOY= VIRAZ

Tuo pačiu metu balai skaičiuojami dešinėje dalyje, o tada tikimasi, kad rezultatas pasikeis, kuris stovės kairėje.

Pavyzdžiui. Užrašykite operatoriaus pagalbą, kad pritrauktumėte matematinio virazo pradžią:

Naudojant VBA, visą virusą galima įrašyti dalyvaujant įžeidžiančiam operatoriui:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. Operatorių įvedimas

3 .3.1. Operatorius ir funkcija MsgBox

operatorius MsgBox Nustatykite informacijos rodymą dialogo lange ir nustatykite mygtuko paspaudimo trumpuoju mygtuku režimą.

Win gali įžeidžianti sintaksė:

MsgBox Pranešimai [,mygtukai][, pavadinimas]

Argumentai:

Patarimas - obov'yazykovyy argumentas, mokyklų mainai klausia vіknі іinformatsiyne voіdomlennya. Gali būti sudarytas iš kelių teksto eilučių, sujungtų ženklu & . Citata iš kieno argumento Chr (13) prieš pereinant prie naujos eilės pіd informacijos rodymo valandą.

Mygtukai - šio argumento reikšmė nustato lange rodomų mygtukų kategoriją. Indėlio mygtuko argumento reikšmė yra tokia pati kaip ir piktogramos. Jei nenurodyta, jei mygtukai turi būti rodomi pažadinimo lange, parenkama akcijos reikšmė, jei rodomas mygtukas Gerai. Prie stalo 3.1 galimi mygtukų ir piktogramų deriniai pranešimų lange.

antraštę - Nustatykite lango pavadinimą.

Funkcija MsgBox Pasukite reikšmę, kad įvestumėte sveikąjį skaičių, kad parodytumėte, kaip mygtukas buvo paspaustas dialogo lange.

3.1 lentelė. Galiojančios keitimo mygtuko reikšmės

Fermentacija

Argumentas

Gerai mygtukas

Mygtukai OK ir Skasuvannya

Mygtukai Taip ir Ne

Mygtukai Taigi, Nі ta Skasuvannya

Mygtukai Prisegti, Kartoti ir Ignoruoti

VbAbortRetryIgnore

Mygtukai Repeat ir Skasuwati.

Informacinis ženklas

maisto ženklas

krušos ženklas

Pavyzdžiui. Pateikite informaciją apie dabartinę datą.

MsgBox "Šiandien kalendoriuje" ir data , "Uvaga"

Dėl to bus parodytas kitas žingsnis (3.1 pav.).

Paspaudus mygtuką OK, raginimas bus uždarytas, o programa atsibus iš operatoriaus, kuris turėtų būti iškart už MsgBox skambučio.

3.3.2. Funkcija Įvesties laukelis

Funkcija Įvesties laukelis zdіysnyuє vіdnjuє vіnnja zmіnnyh vіnіh vіkna vіkna vіkna ta maє tobulinama sintaksė:

Im'ya_Zminniy = InputBox(Pastaba[, Pavadinimas] )

Argumentai:

Patarimas - Obov'yazykovy argumentas. Informacinės pastabos pabaigoje paklauskite, ką pasakyti, kad paaiškintumėte įvedamą jutiklio reikšmę

antraštę - Nustatykite lango pavadinimą.

Pavyzdžiui, Įveskite pakeitimo reikšmę N iš klaviatūros, pervesdami reikšmę į raginimą 10.

Dėl kurio galite pasukti įžeidžiantį operatorių:

N = InputBox ("Įveskite N", "Įvesties duomenys", 10)

Dėl to bus rodomas kitas N pokyčio reikšmės įvedimo langas (3.2 pav.).

Jei užrakto reikšmė yra teisinga, tada paspaudus mygtuką OK, įvesties langas uždaromas, keičiant N priskiriama reikšmė 10 ir prisijungus prie programos iš operatoriaus, kuris turėtų būti iškart už skambučio Įvesties laukelis.

Jei užrakinimo reikšmė koristuvachev netinka, tada prieš spustelėdami mygtuką Gerai, turite įvesti reikiamą pakeitimo N reikšmę.

3 .4. Smart IF pareiškimas

Dekompozicijos surašymo procesui įgyvendinti VBA naudoja operatorių Jei… Tada… kitaip, kuri yra paprasčiausia perevіrki protų forma. Win gali įžeidžianti sintaksė:

JeiguUMOVITadaOPERATOR_1ElseOPERATOR_2

OPERATOR_1 vykonuetsya, like UMOVI tiesa, kitaip pergalinga OPERATOR_2. Šiuo atveju teiginys If…Then…Else rašomas vienoje eilutėje.

UMOVI- Tse viraz loginis tipas. Virazu rezultatas gali būti Būlio tipas. Viraz gali atleisti ir nusimesti. Įrašant paprastus protus, visos galimos operacijos mėlynai, nurodytos lentelėje. 3.2.

stalo3 .2. logiška mėlyna

Operacija

vardas

Viraz

Rezultatas

Tiesa, o tai reiškia, kad A yra arčiau B

Tiesa, o tai reiškia, kad A nėra tas pats, kas B

Tiesa, tas pats kaip A, daugiau

Tiesa, kas mažiau

Daugiau chi lygus

Tiesa, kuri yra daugiau ar mažiau viena

Mažiau arba brangiau

Tiesa, kaip A mažiau ar geriau

Sulankstomi protai susideda iš paprastų takų zastosuvannya loginių operacijų ir apvalių lankų. Loginių operacijų sąrašas pateiktas lentelėje. 3.3.

stalo3 .3. Loginės operacijos

vardas

Viraz

Rezultatas

logiškiau
draudžiama

Logika I

Logika ABO

Išmaniajame operatoriuje priimtinas operatoriaus bloko pakaitalas yra odos operatorius. Šiuo metu protingas operatorius gali atrodyti:

JeiguUMOVITada

BLOCK_OPERATOR_1

BLOCK_OPERATOR_2

Pabaiga If

Psichikos operatoriuje galima susukti dekilą minčių. Šiuo metu protingas operatorius gali atrodyti:

JeiguUMOVI_1Tada

BLOCK_OPERATOR_1

KitaipUMOVI_2Tada

BLOCK_OPERATOR_2

Kitas

PabaigaJeigu

užpakalis 1. Parašykite programos dalį algoritmui pav. 3.3.

užpakalis 2. Parašykite programos dalį algoritmui pav. 3.4.

3.5. Pasirinkite Case Operator

Operatorius Select Case pasirenka rankiniu būdu, jei klaidingoje vietoje yra tos pačios reikšmės reikšmė, jei yra maksimalus leistinų reikšmių skaičius, reikia pasirinkti kitą reikšmę. Vіn taip pat vadinamas išmaniaisiais operatoriais, bet gali atrodyti kitaip:

Pasirinkite CaseREVIRATED_VIRAZ

atvejisVALUE_1

OPERATORS_1

atvejisVERTĖ_ 2

OPERATORIAI_ 2

. . .

atvejisVALUE_N

OPERATORIAI_N

[ atvejisKitas

Priešingu atveju_ OPERATORIAI]

Pabaigos pasirinkimas

REVIRATED_VIRAZ gal mama, būk skaliarinio tipo, krim kalba. VERTĖ pridėti iki tam tikros vertės arba diapazonų, vandens armatūros vieną ir vieną gumulėlį.

Tipas VERTĖ kaltas zbіgatisya z tipas REVIRAZI_VIRAZI.

Nugara suskaičiuota REVIRATED_VIRAZ. Kiek reikšmių eina su viena iš reikšmių VALUE_I, tada laimėk OPERATORIAI_I Pabaigos pasirinkimas. Ši vertė nesikeičia esant toms pačioms reikšmėms VALUE_I, tada laimėk Kiti_operatoriai kad valdymas perduodamas operatoriui, kokios toliau kainuoja Pabaigos pasirinkimas

Pavyzdžiui. Parašykite programos dalį algoritmui pav. 3.5, kuris nustato pokyčio reikšmę S pūdymas kaip pokyčio n reikšmę.

3.6. kilpos operatorius

Įgyvendinant ciklinį surašymo procesą, ty vienkartinį vieno ar kelių operatorių įvedimą, tarnauja kaip ciklo operatorius Už… Kitas, kuri gali būti kita sintaksė:

DėlCHILD=START_VALUEToEND_VALUEžingsnisCROC

BLOCK_OPERATOR

BLOCK_OPERATOR

KitasLICHILNYK

Ciklas For…Next kartojasi per pakeitimo vertę LICHILNYK, kaip ciklo parametras, nuo burbuolės iki paskutinės vertės iš nurodyto pasėlio keitimo. Tai saugu sekti operatorių bloką ciklo korpuse su oda nauja lichnik verte. Jakšo žingsnisCROC ties projektavimu vіdsutnya, tada reikia pasirūpinti spyna, kad darbas brangus 1. Už operatorius Išeiti už galite išeiti iš ciklo teiginio anksčiau LICHILNYK pasiekti likusią vertę.

Norėdami išvardyti objektus iš panašių objektų grupės, pavyzdžiui, viduryje iš diapazono arba masyvo, rankiniu būdu pasirinkite ciklo operatorių Dėl…Kiekvienas… Kitas.

KiekvienamelementasĮGrupė

BLOKAS_ OPERATORIUS

BLOCK_OPERATOR

Kitaselementas

VBA, norint organizuoti kilpas su nežinomu pasikartojimų skaičiumi, pridedami kiti kilpos operatoriai:

ciklai su peredumovoy DarykNorskilpa,

DarykIkikilpa;

ciklai su postum - DarykkilpaNors,

DarykkilpaIki.

Toliau pateikiama ciklo cx teiginių sintaksė:

Dviratis iš PeredumovojausDaryk Nors kilpa

Daryk KolUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Dviratis iš PeredumovojausDaryk Iki kilpa

DarykIkiUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Ciklas su pomirtiniuDaryk kilpa, o

BLOKAS_ OPERATORIUS

BLOCK_OPERATOR

kilpa, oUMOVI

Ciklas su pomirtiniuDaryk Kilpa iki

BLOKAS_ OPERATORIUS

BLOCK_OPERATOR

Kilpa ikiUMOVI

operatorius DarykWhile… Kilpa užfiksuokite kelis operatoriaus bloko pakartojimus taškais, dokais UMOVI dorimuetsya, ir operatorius



Kitos naujienos

3.5.1 Išmaniojo ir beprotiško perėjimo operatoriai. operatorius Jeigu…Tada... Kitaip

VBA proto lenkimas, Jei... Tada... Kitu operatorius, Jei konstruoti lizdus

Išmanusis perėjimo operatorius- vienas iš svarbiausių ir labiausiai paplitusių kilnojamojo programavimo elementų. Pagrindinis jų darbo principas yra paprastas: persvarstoma, kad tai yra teisinga protui (tiesa ta, kad tai yra bet kurios kalbos chibnistas) ir kad bet kokios rūšies vikonnannya programos klaidingumas ištaisomas iš vienos ir kitos pusės. VBA turi du išmaniojo šuolio operatorius: If… Tada… Else ir Select Case.

operatorius Jei tada... Else yra populiariausias tarp programuotojų. Naujoji sintaksė atrodo taip:

Jei Umova Tada
1 komanda

Su kuo:

  • Umov- Viraz, kuris paverčiamas tiesa. Jei tai tiesa, tada Command1 pašventinama, jei nedorai - Command2;
  • UmoviN- dodatkovі protas, yakі galima gerbti. Jei smarvė mojuoja (viraz UmoviN tiesa), tai KomandiN mojuoja.

Jei… Tada… Else pareiškimas sugenda:

  • jei reikia persvarstyti vieno proto pagrįstumą, o tuo pačiu, skirtingo intelekto atveju, tai kaip diyu:

Jei nTemperatūra< 10 Then

MsgBox „Užsivilk švarką“

  • jei reikia apiplėšti tuos, kurie yra priešais užpakalį, o esant nenuoseklumui, vikonaty іnsu dіyu:

Jei nTemperatūra< 10 Then

MsgBox „Užsivilk švarką“

MsgBox "Aprenk vėjo striukę"

  • jei reikia atsiversti į dešimtmečio proto galiojimą (pagarba loginių operatorių pasirinkimui):

If(nTemperatūra< 10) And (bRain = True) Then

MsgBox „Užsivilk striukę ir pasiimk skėtį“

  • lygiai taip pat, kaip pirmasis aidėjimas pasidarė „False“, būtina jį iš naujo patvirtinti, kad būtų daugiau žmonių (tokiu atveju lengva pasukti „ElseIf“):

Jei (bIGoInCar = tiesa) Tada

MsgBox "Suknelė automobiliui"

ElseIf nTemperatūra< 10 Then

MsgBox „Užsivilk švarką“

MsgBox "Galite eiti į marškinius"

Šioje programoje „bIGoInCar“ skeveldros pakeičiamos į Būlio tipą ir pačios priima „True“ arba „False“ reikšmes, pirmoji eilutė gali atrodyti taip:

Jei bIGoInCar Tada…

Deyakі pagarba shkodo vykoristannya Jei… Tada... Kita:

  • raktinis žodis Tada gali būti toje pačioje eilutėje su Jei tas protas. Jei perkelsite jogą į kitą eilutę, pamatysite priminimą apie atleidimą;
  • Jei norite paskleisti komandą, jei reikia „vicoon“, jei tai tiesa, pagalvokite apie tai, kas taisoma, toje pačioje eilutėje su „If“ ir „Then“, tada negalite rašyti „End If“:

Jei nTemperatūra< 10 Then MsgBox "Одеть куртку"

  • Na, o jei laimite krūvą komandų ar Else / ElseIf konstrukcijų, tada Pabaiga Jei, pavyzdžiui, reikia parašyti obov'yazkovo - kitu atveju yra sintaksinis atleidimas.
  • Jei… Tada išraiškai rekomenduojama pasirinkti veiksmus, kad pamatytumėte komandų blokus. Priešingu atveju bus svarbu perskaityti kodą.
  • Jei... Tada teiginius galima sudėti vienas į vieną:

Jei MyVar = 5 Tada

MsgBox "MyVar=5"

Jei MyVar = 10 Tada

MsgBox "MyVar=10"

Tabletės