VBA operateri: jednostavan izbor. Metodički iskazi i zadaci Vba Smart If izjava

Pranje ê još iskrivljenije kod programiranja, krhotine nam omogućuju da osvojimo díí̈, ugar po utvrđenim kriterijima (isti princip se osvaja AKO Excel funkcije).

Najvažnija funkcija, kako pitate um AKO I odjednom se čudimo kako radi:

Ako [PAMETNO OVDJE] Onda "=> YAKSHO umova vírna, TODI "Upute, poput "istina" Inače "=> PROTIV PADA "Upute, poput "besmislica" Kraj Ako

Prijeđimo na vježbu, pa se okrenimo zadnjici koja je mene oponašala u vrijeme promjena. Metafora postupka bila je u tome što je otvarao dijaloški prozor, kao da se radi o vrijednosti retka naznačenog u sredini F5:

Kako unositi slovo u sobu F5, tse nanijeti pomilovanje. Želimo nekoga spasiti.

Podvarijable () "Deklariranje promjene Dim prezime kao niz, ime_ime kao niz, dob kao cijeli broj, broj_reda kao cijeli broj "Dodjela promjene za promjenu broja_reda = Raspon("F5") + 1 prezime = Ćelije(broj_reda, 1) fir , 2) dob = Ćelije (broj_reda, 3) "MsgBox dijaloški okvir prezime & " " & ime & "," & dob & " godine" Kraj pod

Hajde da dodamo um, yaku reverify - chi ê unesite vrijednost u sredinu F5 broj, ispred njega, jer će kod biti vikonano.

Ubrzavamo funkciju IsNumeric za reverb um:

Podvarijable () "Koja je vrijednost u lukovima (strip F5) ê je numerička (JA OVO JE BROJ IF Ê BRIM), zatim "onda ako je Numerički (Raspon ("F5")) Zatim "Objava promjene Dim last_ , first_name As String, age As Integer, row_number As Integer "Dodijeljena vrijednost za promjenu row_number = Range("F5") + 1 last_name = Cells (row_number, 1) first_name = Cells (row_number, 2) age = Cells (red "MsgBox dijaloško ime prezime & " " & first_name & "," & age & " age" End If End Sub

Također je potrebno da zapišemo upute, kao da um nije spreman:

Podvarijable () If IsNumeric (Raspon ("F5")) Zatim "Deklariranje promjene Dim prezime kao niz, ime_naziv kao niz, starost kao cijeli broj, row_number kao cijeli broj "Dodjela vrijednosti za promjenu row_number = Raspon + 1 prezime = Ćelije (broj_reda, 1) first_name = Ćelije (broj_reda, 2) age = Ćelije (broj_reda, 3) "MsgBox dijaloški okvir prezime & " " & first_name & "," & age & " ro_v" Inače "Tako da ne vidite "MsgBox dijaloški okvir : Prethodni MsgBox "Unesena vrijednost i raspon ("F5") & "Ne mogu provjeriti!" "ClearContents End If End Sub

Sada nenumerička značenja ne uzrokuju svakodnevne probleme.

Pratsyyuyuchi s našim nizom, koji će osvetiti 16 redaka podataka, naša ofenziva će biti u reverbirtsí chi ê promijeniti row_number: "više niže ili više 2" i "manje niže ili više 17".

Pogledajmo na brzinu operatere povnyannya:

i tsí korisní operatori:

Sada dodamo jednog od najboljih umova I između operatera

Podvarijable () If IsNumeric (Raspon ("F5")) Zatim "Zatamniti prezime kao niz, ime_ kao niz, starost kao cijeli broj, broj_reda kao cijeli broj broj_reda = Raspon("F5") + 1 Ako je broj_reda > = 2 I broj_reda

Ako želimo naš makro praktičniji, možemo ga zamijeniti 17 za promjenu, jak mistila b kílkíst rowkív. Tse bi nam omogućio dodavanje i uklanjanje redaka iz niza bez potrebe za promjenom ograničenja kože.

Da bismo napravili razliku, možemo stvoriti promjenu nb_rows i dodajte tu funkciju.

Imam pobjedničku funkciju Funkcija radnog lista.CountA, kao analog funkcije COUNTA u samom Excelu.

Želimo da to bude funkcija koja je pokupila niz nepraznih sredina u prvom stupcu zapisujući vrijednost promjene nb_rows:

Podvarijable () If IsNumeric (Raspon("F5")) Tada "YAKI NUMBER Dim prezime kao niz, ime_kao niz, starost kao cijeli broj, row_number As cijeli broj Dim nb_rows As cijeli broj row_number = Range("F5") = 1 Funkcija radnog lista. CountA (Raspon ("A:A")) "Funkcija za brojanje broja redaka ako je broj_reda > = 2 i broj_reda

ElseIf

ElseIf daje vam mogućnost dodavanja dodatnih opcija, a zatim naredbi IF:

Ako je [CLEAN 1] Tada je "=> YAKSCHO Umova 1 istina, TODI "Upute 1 ElseIf [CLEAN 2] Tada je "=> YAKSCHO Umova 1 pogrešan, Ale Umova 2 je točan, TODI "Upute 2 Ostalo" => Else " Upute Ako

Yakscho UMOVI 1 vykonuetsya, Uputa 1 bude vikonano ta lišiti operatera AKO(od kojeg polazi AKO završava sa End If). Yakscho UMOVI 2 dobiva smisao" sranje “, onda ćeš biti vikonana Uputa 2, i kao da okreće vraga" sranje “, dakle Uputa 3(píd Drugo) bit će vikonano.

Sub scores_comment() "Promijeni zatamnjenu bilješku kao cijeli broj, score_comment kao string notu = Raspon ("A1") ElseIf note = 5 Onda score_comment = "Garniy rezultat" ElseIf note = 4 Onda score_comment = "Zadovoljavajući rezultat" ElseIf note = 3 Tada score_comment = "Neuspješan rezultat" ElseIf note = 2 Tada score_comment = "Loš rezultat" = "Loš rezultat" score_comment = "Nulti rezultat" Kraj Ako je "Komentar u srednjem rasponu B1 ("B1") = score_comment Kraj Sub

Izaberi

Ísnuê alternativa vikoristany Ako s bagatma ElseIf upute, već sama naredba Izaberi, kako više pristupiti takvim situacijama.

Pogledajmo zadnjicu makronaredbe s operatorom Izaberi:

Sub scores_comment() "Promijeni zatamnjenu bilješku kao cijeli broj , score_comment kao string napomenu = Raspon ("A1") "Komentari na temelju rezultata Odaberite bilješku slučaja"

Varto ukazuje da bismo mogli pobijediti i s drugim operaterima utakmice:

Slučaj je >= 6

Primijeniti s različitim značenjima:

Slučaj je = 6, 7 "koja vrijednost = 6 ili 7 Slučaj je 6, 7" koja vrijednost nije dobra 6 ili 7 Slučaj 6 do 10

The IF funkcija u VBA je jedna od najčešće korištenih izjava. IF funkcije provjeravaju je li navedeni uvjet ispunjen ili ne. Funkcija IF u VBA radi malo drugačije nego u Excelu. U Excelu funkcije IF imaju dvije vrijednosti: vrijednost preokreta, što znači da se može procijeniti na TRUE ili FALSE i ažurirat će se tako da se temelji na IF( uvjet, povratna_vrijednost_ako_uvjet_true, povratna_vrijednost_ako_uvjet_netočno). Međutim, funkcija IF u VBA je samo prvi dio, t.j. provjerite je li uvjet procijenjen na TRUE ili FALSE. Pritisnite bilo koji scenarij, kao što je određeno za pomoć druge izjave THEN.

Korištenje jednostavne funkcije IF u VBA

Evo primjera IF funkcija. Ova točka u VBA kodu jednostavno provjerava je li specificirani uvjet (tj. 1 > 4) TRUE ili FALSE. U svakom slučaju, ako postoji samo nekoliko instalacija, heklanje će se raščlaniti na TRUE kada razmislite o tome. U svakom slučaju, rezultat će biti prikazan na ekranu. Budući da je funkcija dovedena na FALSE, VBA kod neće učiniti ništa.

1
2
3
4
5

Pod IF_FUNCTION()
Ako je 7 > 1 Onda
MsgBox "7 je veće od 1"
Završi ako
kraj pod

The ZATIM naredba je u biti direktiva koja pokazuje da se koraci neposredno nakon nje trebaju izvršiti ako je uvjet neposredno prije if ocijenjen na TRUE.

IF funkcija zadana deklaracija END IF koja aplikaciji daje do znanja da je to zadnji redak funkcije IF. Dolje je dat nešto kraći oblik funkcije IF. Imajte na umu da je izraz END IF u ovome eliminiran i stoga su tri retka koda spojena u jedan.

Pod IF_FUNCTION_SHORT()
Ako je 7 > 1 Tada MsgBox "7 je veći od 1"
kraj pod

Međutim, ovaj obrazac treba koristiti samo kada ih nema DRUGO ili DRUGO AKO potrebne su izjave. Pogledajmo što su i kako pomažu poboljšati funkciju IF.

Vicorist IF funkcija s ELSE u VBA

U slučaju kada je to moguće, svjesni smo da je funkcija IF kriva za stvaranje do kraja brige samo ako je um procijenjen na TRUE. Ali ipak razmišljaš o onima koje će maleni biti stvoreni iz činjenice da će ti, kako bude, izaći u susret. Jedan od načina da dobijete funkciju IF za pobjedu za izraz ELSE. Jednostavno rečeno, izraz ELSE uzrokuje da aplikacija izvrši korake spomenute u bloku ELSE kada uvjet naveden u IF klauzuli procijeni na FALSE.

U VBA kodu ispod, u IF funkcijama koje se procjenjuju na false, stilovi spomenuti u bloku ELSE se izvode s rezultatom da se na ekranu prikazuje poruka “1 je manje od 4”. U blok se može dodati više koraka, tako da se svi izvršavaju jedan za drugim.

1
2
3
4
5
6
7

Pod IF_ELSEIF_FUNCTION()
Ako je 1 > 4 Onda

drugo:
MsgBox "1 je manje od 4"
Završi ako
kraj pod

Za dodatne IF funkcije s ELSEIF i ELSE: u VBA

ELSE izraz može biti odobren za ELSEIF izraze. Smrad je tipičan za ponovnu provjeru određenih umova, a budući da su svi oni ocijenjeni PUNI, dokazi su označeni u DRUGO uma, bit će preostalih prihvaćanja. Naredba IF će provjeriti zadani uvjet. Ispostavilo se da je FALSE, provjerava se uvjet naveden u prvom ELSEIF izrazu. Kao i smrad preuzimanja sudbine onoga za što mislite, imenovanog u drugom dijelu ELSEIF-a, bit će riješeno, i to ne samo. Sve je postavljeno u klauzulama IF i ELSEIF na FALSE, samo malo spomenuto pod konačnim ELSE: blokom će se izvršiti. Da ponovim, budući da smrdi više naredbi ELSEIF, tada će prvi koji procijene na TRUE biti odbijeni i nakon što se propuste, izvršni kod će se srušiti u naredbu END IF. Bilo da se radi o najvećim ELSEIF umovima, koji su ocijenjeni kao TRUE, samo će prvi, koji su ocijenjeni kao TRUE, biti izvršeni.

1
2
3
4
5
6
7
8
9
10
11


Ako< >onda
MsgBox "1 je veće od 4"
ElseIf< >onda

ElseIf< >onda

Drugo< >:

Završi ako
kraj pod

Tekst je prikazan ispod, IF je prvo označen. Budući da se procjenjuje na FALSE, procjenjuje se prvi ELSEIF uvjet, a zatim drugi. Bez jednog od njih ocijenjeni su kao TRUE, Koraci spomenuti u OSTALI: umova ê izvršena.

1
2
3
4
5
6
7
8
9
10
11

Pod IF_ELSEIF_ELSE_FUNCTION()
Ako je 1 > 4 Onda
MsgBox "1 je veće od 4"
ElseIf 2 > 4 Onda
MsgBox "2 je veće od 4"
ElseIf 3 > 4 Onda
MsgBox "3 je veće od 4"
drugo:
MsgBox "1, 2 ili 3 - manje od 4"
Završi ako
kraj pod

Brzi savjet – Kako povećati IF izjave rade brže

Smanjenje na bočnom kodu izgleda slično. Dva ELSEIF uma u drugoj funkciji mogu biti srušena. Što mislite koji lebdeći pokazivač u VBA kodu se izvršava brže?:
Završi ako
Sljedeći i
MsgBox Timer - t
kraj pod

odgovor je da se drugi izvršava mnogo brže od prvog. Zašto? Onaj kojemu su potrebne dvije sekunde da se zaustavi u kretanju kroz neravne linije u kodu prije njega, takav kakav jest, ocjenjuje se kao TRUE. Poštujte da je ELSEIF prvi, da se TRUE izvršava i da se nijedan od ostalih uvjeta ne evaluira, čak i ako bi se također procijenili na TRUE. Na prvoj poziciji VBA koda, ELSEIF funkcija on-line 6 procjenjuje se na TRUE dok na drugom, redak 5 ispunjava kriterije. Onaj s više, nižom inteligencijom, ocjenjen je kao TRUE, ranije bi trebao biti smješten u VBA kodu, sve ostalo je isto.

Jednoredna ta višeredna konstrukcija If...Then...Else operatora i funkcije IIf, koji su uobičajeni u Excel VBA kodu – sintaksa, komponente, aplikacije.

If...Then...Else Statement

Operater Ako...Onda...Drugo dodjeljivanje prijenosa kontrole jednom od blokova operatera ovisi o rezultatima skretanja uma.

Jednoredna konstrukcija

Operater Ako...Onda...Drugo može pobijediti u dizajnu jednog reda bez ključnih riječi Drugo, Završi ako.

Sintaksa jednoredne konstrukcije If...Then...

Ako[umova] Zatim[operater]

Komponente jednoredne konstrukcije Ako tada...

  • umova Pravi ili Netočno;
  • operateri umova rotirati vrijednost Pravi;

Kao komponenta umova rotirati vrijednost Netočno, navodni blok u konstrukciji Ako tada...

guza 1

Sub primer1() Dim d As Integer, a As String d = InputBox("Unesite broj od 1 do 20", "Instanca 1", 1) Ako je d > 10 Tada je a = "Broj " & d & " veći od 10 " MsgBox krajnji sub

Bagatoryadna gradnja

Sintaksa konstrukcije niza If...Then...Else

Ako[umova] Zatim[operater] ElseIf[umova] Zatim[operater] ---------------- Drugo[operater] Završi ako

Komponente izgradnje bagatorija Ako...Onda...Drugo:

  • umova- numerički ili redni izraz, nakon ključne riječi Ako ili ElseIf to okretno logičko značenje Pravi ili Netočno;
  • operateri- blok naredbi u VBA Excel kodu, koji se koristi kao komponenta umova rotirati vrijednost Pravi.
  • točkasta linija označiti dodatne strukturne blokove reda ElseIf [umova] Onda te redove [operater];
  • blok izjava nakon ključne riječi Drugo vykonuetsya u bilo kojoj vrsti vipadka, ali strukturni blok koda za punjenje Drugo te redove [operater] ne obov'azkovim i mogu biti propusti.

Kao komponenta umova rotirati vrijednost Netočno, nakon čega slijedi blok operatera u izgradnji Ako...Onda...Drugo ta se programska kontrola preskače i prenosi u sljedeći red koda.

Najjednostavnija varijanta dizajna bagatory-reda Ako...Onda...Drugo:

Ako[umova] Zatim[operater] Drugo[operater] Završi ako

guza 2

Sub primer2() Dim d Kao cijeli broj, a As String d = InputBox("Unesite broj od 1 do 40", "Instanca 2", 1) Ako je d< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 i d< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 I d< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

Funkcija IIf

Funkcija Ako ponovno provjeravanje zadanog uma i okretanje vrijednosti iznova i iznova prema rezultatu ponovne provjere.

Sintaksa funkcije

Ako([umova], [što je istina], [što je netočno])

Komponente funkcije IIf

  • umova- numerički ili redni izraz, koji pretvara logičke vrijednosti Pravi ili Netočno;
  • Točno Istina Ako, Kao umova okrenuo vrijednost Pravi;
  • Netočno- vrijednost, kako okrenuti funkciju Ako, Kao umova okrenuo vrijednost Netočno.

guza 3

Sub primer3() Dim d Kao cijeli broj, a As String d = InputBox("Unesite broj od 1 do 20", "Instance 3", 1) a = IIf(d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

Pritiskom na gumb “Odustani” ili zatvaranjem dijaloškog prozora okvira za unos križićem, generira se oprost, tako da se u ovim koracima okreće prazan red. Dodjela praznog retka promjene tipu D Integer zahtijeva pomilovanje. Pritiskom na gumb "OK" dijaloškog prozora, broj upisan u polje za unos u tekstualnom formatu, VBA Excel automatski pretvara u numerički format promjene d.

VBA operatori osnovnih poteza

Komentari (0)

3.1. Pravila za operatere snimanja

Prilikom snimanja operatera slijedite sljedeća pravila:

Skina novog operatera snima se iz novog retka.

Da biste napisali hrpu operatora u jednom retku, oni su međusobno podijeljeni dvostrukim (:).

Ako se operator ne pomiče u jednom redu, tada je potrebno na kraju reda staviti znak razmaka (_), a zatim nastaviti onaj dio koji nije stao u sljedeći red.

3.2. Operater pozivnice

Operater je privučen pobjedničkim, kao da se mijenja, potrebno je dati novu vrijednost. Win svibanj uvredljiva sintaksa:

IM'YA_ZMINNOY= VIRAZ

Pritom se u desnom dijelu broje bodovi, a potom se očekuje promjena rezultata, koji će stajati u lijevom dijelu.

Na primjer. Zapišite uz pomoć operatora da privučete pojavu matematičkog virusa:

Na VBA se cijela viraza može snimiti u prisutnosti uvredljivog operatera:

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

3 .3. Unos operatora

3 .3.1. Operator i funkcija MsgBox

Operater MsgBox Postavite prikaz informacija na dijaloški prozor i postavite način pritiska na tipku kratkom tipkom.

Win svibanj uvredljiva sintaksa:

MsgBox Obavijesti[,Gumbi][, Naslov]

Argumenti:

Savjet - obov'yazykovyy argument, scho pita na víkní íinformatsiyne voídomlennya. Može se formirati iz više tekstualnih redaka, ujedinjenih znakom & . Citat čije argumentacije Chr(13) dovesti prije prijelaza u novi red píd sat prikaza informacija.

Gumbi - vrijednost ovog argumenta određuje kategoriju gumba koji se pojavljuju u prozoru. Vrijednost argumenta gumba za polog jednaka je vrijednosti ikone. Ako nije navedeno, ako se gumbi moraju prikazati na prozoru za buđenje, vrijednost se odabire za promociju, ako je prikazan gumb OK. Na stolu 3.1 moguće kombinacije gumba i ikona u prozoru obavijesti.

Zaglavlje - Postavite naslov prozora.

Funkcija MsgBox Okrenite vrijednost tako da upišete Integer kako biste naznačili kako je gumb pritisnut u dijaloškom okviru.

Tablica 3.1. Važeće vrijednosti gumba za promjenu

Vrenje

Argument

gumb OK

Gumbi OK i Skasuvannya

Gumbi Da i Ne

Gumbi Dakle, Ní ta Skasuvannya

Gumbi Prikvači, Ponovi i Zanemari

VbAbortRetryIgnore

Gumbi Ponavljanje i Skasuwati.

Informacijski znak

znak hrane

znak za tuču

Na primjer. Molimo navedite podatke o trenutnom datumu.

MsgBox "Danas na kalendaru" & Datum , "Uvaga"

Kao rezultat, bit će prikazan sljedeći korak (slika 3.1).

Nakon pritiska na tipku OK, prompt će se zatvoriti, a program će se probuditi iz operatera, koji bi trebao biti odmah iza MsgBox poziva.

3.3.2. Funkcija InputBox

Funkcija InputBox zdíysnyuê vídnjuê vínnja zmínnyh víníh víkna víkna víkna ta maê napredujuća sintaksa:

Im'ya_Zminniy = InputBox(Obavijest[, Naslov] )

Argumenti:

Savjet - Obov'yazykovy argument. Pitajte na kraju informativne bilješke što reći kako biste objasnili vrijednost senzora koju treba unijeti

Zaglavlje - Postavite naslov prozora.

Na primjer, Unesite vrijednost promjene N s tipkovnice, prosljeđujući vrijednost u prompt 10.

Za što možete uvrnuti uvredljivog operatera:

N = InputBox("Unesite N", "Ulazni podaci",10)

Kao rezultat, prikazat će se sljedeći prozor za uvođenje vrijednosti promjene N (slika 3.2).

Ako je vrijednost za zaključavanje ispravna, tada se nakon pritiska na tipku OK prozor za unos zatvara, promjenom N dodjeljuje se vrijednost 10 i nakon što se program prijavi od operatera, koji bi trebao biti odmah iza poziva InputBox.

Ako vrijednost za zaključavanje nije prikladna za koristuvačevo, tada je prije klika na gumb U redu potrebno unijeti potrebnu vrijednost promjene N.

3 .4. Pametna izjava IF

Za implementaciju procesa dekomponiranja nabrajanja, VBA koristi operator Ako ... Onda ... Inače,što je najjednostavniji oblik perevírki umova. Win svibanj uvredljiva sintaksa:

AkoUMOVIZatimOPERATOR_1ElseOPERATOR_2

OPERATOR_1 vykonuetsya, kao UMOVI istina, inače pobjednički OPERATOR_2. U ovom slučaju, izjava If…Then…Else je napisana u jednom redu.

UMOVI- Tse viraz logičan tip. Rezultat virazu može biti Boolean tip. Viraz može oprostiti i odustati. Prilikom snimanja jednostavnih umova, sve moguće operacije su u plavom, naznačene u tablici. 3.2.

stol3 .2. logično plavo

Operacija

Ime

Viraz

Proizlaziti

Istina, što znači da je A bliži B

Istina, što znači da A nije isto što i B

Istina, isto kao A, više

Istina, što je manje

Više chi jednakih

Istina, što je manje-više jedno

Manje ili skuplje

Istina, kao A manje ili bolje

Sklopivi umovi se sastoje od jednostavnih staza zastosuvannya logičkih operacija i okruglih lukova. Popis logičkih operacija prikazan je u tablici. 3.3.

stol3 .3. Logičke operacije

Ime

Viraz

Proizlaziti

logičnije
zabranjeno

Logika I

Logika ABO

U pametnom operateru prihvatljiva zamjena bloka operatora je skin operator. U ovom trenutku, pametan operater može izgledati:

AkoUMOVIZatim

BLOCK_OPERATOR_1

BLOCK_OPERATOR_2

Kraj If

U mentalnom operateru, dekil umova može biti uvrnut. U ovom trenutku, pametan operater može izgledati:

AkoUMOVI_1Zatim

BLOCK_OPERATOR_1

ElseIfUMOVI_2Zatim

BLOCK_OPERATOR_2

Drugo

KrajAko

guza 1. Napišite dio programa za algoritam na sl. 3.3.

guza 2. Napišite dio programa za algoritam na sl. 3.4.

3.5. Odaberite Operater slučaja

Operator Select Case ručno odabire, ako postoji vrijednost iste vrijednosti u zabludi, ako postoji maksimalni broj dopuštenih vrijednosti, potrebno je odabrati drugu vrijednost. Vín se također odnosi na pametne operatere, ali može biti drugačiji izgled:

Odaberite CaseREVIRATED_VIRAZ

slučajVALUE_1

OPERATORI_1

slučajVRIJEDNOST_ 2

OPERATORI_ 2

. . .

slučajVALUE_N

OPERATORI_N

[ slučajDrugo

Inače_ OPERATORI]

Kraj Odaberite

REVIRATED_VIRAZ možda majka, budi skalarni tip, krim govor. VRIJEDNOST zbrojiti do određene vrijednosti ili raspona, vodopojačanje jedan i jedan gruda.

Tip VRIJEDNOST kriv zbígatisya z vrsta REVIRAZI_VIRAZI.

Broja se leđa uz leđa REVIRATED_VIRAZ. Koliko značenja ide uz jedno od značenja VALUE_I, zatim pobijediti OPERATORS_I Kraj Odaberite. Ova vrijednost se ne mijenja s istim vrijednostima VALUE_I, zatim pobijediti Ostali_operateri ta se kontrola prenosi na operatera, što dalje košta Kraj Odaberite

Na primjer. Napišite dio programa za algoritam na sl. 3.5, koji određuje vrijednost promjene S ugar kao vrijednost promjene n.

3.6. operator petlje

Za provedbu cikličkog procesa nabrajanja, odnosno jednokratnog upisivanja jednog ili nekoliko operatora, služe kao operator ciklusa Za…Sljedeće, što može biti sljedeća sintaksa:

ZaDIJETE=START_VRIJEDNOSTToEND_VALUEkorakCROC

BLOCK_OPERATOR

BLOCK_OPERATOR

SljedećiLICHILNYK

Petlja For…Next ponavlja vrijednost promjene LICHILNYK, kao parametar ciklusa, od klipa do zadnje vrijednosti iz naznačene promjene usjeva. Uz to, sigurno je pratiti blok operatera u tijelu ciklusa s novom vrijednošću ličnika. Yakscho korakCROC u dizajnu vídsutnya, onda morate voditi brigu o bravi, da je posao skup 1. Iza operatera Izlaz za možete izaći iz naredbe petlje prije LICHILNYK dostići preostalu vrijednost.

Za nabrajanje objekata iz grupe sličnih objekata, na primjer, u sredini iz raspona ili niza, ručno odaberite operator petlje Za…Svaki…Sljedeći.

Za svakogaelementUSkupina

BLOK_ OPERATER

BLOCK_OPERATOR

Sljedećielement

U VBA, za organiziranje petlji s nepoznatim brojem ponavljanja, dodaju se drugi operatori petlje:

ciklusi s peredumovoy ČiniDokpetlja,

ČiniDopetlja;

ciklusi s postumom - ČinipetljaDok,

ČinipetljaDo.

Ispod je sintaksa cx izraza u petlji:

Ciklus iz PeredumovogČini Dok petlja

Učini dokUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Ciklus iz PeredumovogČini Do petlja

ČiniDoUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Ciklus s posmrtnimČini petlja dok

BLOK_ OPERATER

BLOCK_OPERATOR

petlja dokUMOVI

Ciklus s posmrtnimČini Petlja do

BLOK_ OPERATER

BLOCK_OPERATOR

Petlja doUMOVI

Operater ČiniWhile… Petlja osigurajte nekoliko ponavljanja bloka operatera u točkama, dokovima UMOVI dorimuetsya, a operater



Ostale vijesti

3.5.1 Operateri pametne i lude tranzicije. Operater Ako…Onda... Drugo

VBA zadivljujući, If...Then...Else operator, If construct ugniježđenje

Pametni operater tranzicije- jedan od najvažnijih i najčešćih elemenata pokretnog programiranja. Temeljno načelo njihova rada je jednostavno: preispituje se da je istinit umovima (istina je da je chibnist bilo kojeg jezika) i da se zabluda bilo koje vrste programa vikonnannya ispravlja s jedne i s druge strane. VBA ima dva pametna operatora skoka: If… Then… Else i Select Case.

Operater Ako tada... Else je najpopularniji među programerima. Nova sintaksa izgleda ovako:

Ako Umova Onda
Naredba 1

s kim:

  • Umov- Viraz, koji je pretvoren u istinu. Ako je istina, onda je naredba1 posvećena, ako je opako - naredba2;
  • UmoviN- dodatkoví um, yakí se može štovati. Ako smrad maše (viraz UmoviN je istina), onda mašu KomandiN.

Naredba If...Then...Else će se srušiti:

  • ako je potrebno preispitati valjanost jednog uma, a u isto vrijeme, u slučaju različite inteligencije, to je kao diyu:

Ako je nTemperatura< 10 Then

MsgBox "Obuci jaknu"

  • ako je potrebno opljačkati one koji su ispred guza, iu vremenima nedosljednosti, vikonaty ínsu díyu:

Ako je nTemperatura< 10 Then

MsgBox "Obuci jaknu"

MsgBox "Obuci vjetrovku"

  • ako je potrebno prijeći na valjanost desetljeća umova (poštovanje izbora logičkih operatora):

If(nTemperatura< 10) And (bRain = True) Then

MsgBox "Obuci jaknu i uzmi suncobran"

  • baš kao što je prvi reverb postao False, potrebno ga je ponovno provjeriti za više dekil umova (u tom slučaju lako je izvrnuti ElseIf):

Ako (bIGoInCar = True) Onda

MsgBox "Haljina za auto"

ElseIf nTemperatura< 10 Then

MsgBox "Obuci jaknu"

MsgBox "Možete ići do majice"

Za ovu aplikaciju, bIGoInCar dijelovi se mijenjaju u Boolean tip i sami po sebi prihvaćaju vrijednosti True ili False, prvi red može izgledati ovako:

Ako biGoInCar onda…

Deyakí poštuje shkodo vykoristannya Ako...Onda... Drugo:

  • ključna riječ Tada može biti u istom redu s Ako taj um. Ako jogu prebacite u sljedeći red, vidjet ćete podsjetnik o pomilovanju;
  • Ako želite proširiti naredbu, ako trebate vicoon, ako je istina, razmislite o tome što se ispravlja, u istom retku s If i Then, onda ne možete napisati End If:

Ako je nTemperatura< 10 Then MsgBox "Одеть куртку"

  • Pa, ako osvojite hrpu naredbi ili Else / ElseIf konstrukcije, onda End If, na primjer, potrebno je napisati obov'yazkovo - inače, postoji sintaktički oprost.
  • za izraz If…Then, preporuča se odabrati korake za prikaz blokova naredbi. Inače će biti važno pročitati kod.
  • Ako ... Tada se izrazi mogu ugniježditi jedan u jedan:

Ako je MyVar = 5 Onda

MsgBox "MyVar=5"

Ako je MyVar = 10 Onda

MsgBox "MyVar=10"

Tablete