Kako koristiti If-Then u Excel 2016 VBA

If-Then je VBA-ova najvažnija kontrolna struktura. Ovu naredbu vjerojatno ćete koristiti svakodnevno. Koristite strukturu If-Then kada želite izvršiti uvjetno jedan ili više izraza. Opcijska klauzula Else, ako je uključena, omogućuje vam da izvršite jednu ili više naredbi ako uvjet koji testirate nije istinit. Evo jednostavne procedure CheckUser, prekodirane za korištenje strukture If-Then-Else:

Sub CheckUser2()
  Korisničko ime = InputBox ("Unesite svoje ime: ")
  Ako je korisničko ime = "Satya Nadella" Zatim
    MsgBox ("Dobrodošla Satya...")
' …[Više koda ovdje] …
  Drugo
    MsgBox “Oprosti. Samo Satya Nadella može ovo voditi.”
  Završi ako
Kraj Sub

Ako-Onda primjeri

Sljedeća rutina pokazuje strukturu If-Then bez neobavezne klauzule Else:

Sub GreetMe()
  Ako je vrijeme < 0,5 onda MsgBox "Dobro jutro"
Kraj Sub

Procedura GreetMe koristi VBA-ovu funkciju vremena za dobivanje vremena sustava. Ako je trenutno vrijeme manje od 0,5, rutina prikazuje prijateljski pozdrav. Ako je Vrijeme veće ili jednako .5, rutina završava i ništa se ne događa.

Za prikaz drugačijeg pozdrava ako je Vrijeme veće od ili jednako .5, možete dodati još jednu naredbu If-Then nakon prve:

Sub GreetMe2()
  Ako je vrijeme < 0,5 onda MsgBox "Dobro jutro"
  Ako je vrijeme >= 0,5 onda MsgBox "Dobar dan"
Kraj Sub

Primijetite da se >= (veće ili jednako) koristi za drugu naredbu If-Then. To osigurava da je cijeli dan pokriven. Da je korišteno > (veće od), ne bi se pojavila poruka da se ovaj postupak izvrši točno u 12:00 sati. To je malo vjerojatno, ali s ovakvim važnim programom ne želite riskirati.

Primjer If-Onda-Else

Drugi pristup prethodnom problemu koristi klauzulu Else. Evo iste rutine kodirane za korištenje strukture If-Onda-Else:

Sub GreetMe3()
  Ako je vrijeme < 0,5 onda MsgBox “Dobro jutro” Ostalo _
    MsgBox “Dobar dan”
Kraj Sub

Primijetite da se u prethodnom primjeru koristi znak za nastavak retka (podvlaka). Naredba If-Then-Else zapravo je jedna izjava. VBA pruža malo drugačiji način kodiranja If-Then-Else konstrukcija koje koriste naredbu End If. Stoga se GreetMe procedura može prepisati kao

Sub GreetMe4()
  Ako je vrijeme < 0,5 Tada
    MsgBox "Dobro jutro"
  Drugo
    MsgBox “Dobar dan”
  Završi ako
Kraj Sub

Zapravo, možete umetnuti bilo koji broj izraza u dio If i bilo koji broj izraza u dio Else. Ova sintaksa je lakša za čitanje i čini izjave kraćima.

Što ako trebate proširiti GreetMe rutinu za rješavanje tri stanja: ujutro, poslijepodne i navečer? Imate dvije mogućnosti: upotrijebite tri ako-onda naredbe ili upotrijebite ugniježđenu strukturu ako-onda-drugače. Ugniježđenje znači stavljanje If-Onda-Else strukture unutar druge If-Onda-Else strukture. Prvi pristup, koristeći tri If-Then izjave, jednostavniji je:

Sub GreetMe5()
 Priguši poruku kao niz
 Ako je vrijeme < 0,5 tada je poruka = ​​"Jutro"
 Ako je vrijeme >= 0,5 i vrijeme < 0,75 Tada je poruka = ​​"Poslijepodne"
 Ako je vrijeme >= 0,75 Tada je poruka = ​​"Večer"
 MsgBox “Dobro” & Msg
Kraj Sub

Dodan je novi zaokret uz korištenje varijable. Varijabla Msg dobiva drugačiju tekstualnu vrijednost, ovisno o dobu dana. Izjava MsgBox prikazuje pozdrav: Dobro jutro, Dobar dan ili Dobra večer.

Sljedeća rutina izvodi istu radnju, ali koristi strukturu If-Then-End If:

Sub GreetMe6()
  Priguši poruku kao niz
  Ako je vrijeme < 0,5 Tada
    Poruka = ​​"Jutro"
  Završi ako
  Ako je vrijeme >= 0,5 i vrijeme < 0,75 Tada
    Poruka = ​​"Poslijepodne"
  Završi ako
  Ako je Vrijeme >= 0,75 Tada
    Poruka = ​​"Večer"
  Završi ako
  MsgBox “Dobro” & Msg
Kraj Sub

Korištenje ElseIf

U prethodnim primjerima, svaki izraz u rutini se izvršava. Nešto učinkovitija struktura bi izašla iz rutine čim se utvrdi da je uvjet istinit. Ujutro, na primjer, procedura bi trebala prikazati poruku Dobro jutro, a zatim izaći - bez evaluacije drugih suvišnih uvjeta.

Uz ovakvu malu rutinu, ne morate brinuti o brzini izvršenja. Ali za veće aplikacije u kojima je brzina kritična, trebali biste znati za drugu sintaksu za strukturu If-Then.

Evo kako možete prepisati GreetMe rutinu korištenjem ove sintakse:

Sub GreetMe7()
 Priguši poruku kao niz
 Ako je vrijeme < 0,5 Tada
   Poruka = ​​"Jutro"
 Inače ako je vrijeme >= 0,5 i vrijeme < 0,75 Tada
   Poruka = ​​"Poslijepodne"
 Drugo
   Poruka = ​​"Večer"
 Završi ako
 MsgBox “Dobro” & Msg
Kraj Sub

Kada je uvjet istinit, VBA izvršava uvjetne izraze, a struktura If završava. Drugim riječima, ovaj postupak je malo učinkovitiji od prethodnih primjera. Kompromis je što je kod teže razumljiv.

Još jedan primjer Ako-Onda

Evo još jednog primjera koji koristi jednostavan oblik strukture If-Then. Ovaj postupak traži od korisnika količinu, a zatim prikazuje odgovarajući popust na temelju količine koju korisnik unese:

Sub ShowDiscount()
  Dim Quantity As Long
  Dim Discount As Double
  Količina = InputBox ("Unesite količinu:")
  Ako je količina > 0 tada je popust = 0,1
  Ako je količina >= 25, tada je popust = 0,15
  Ako je količina >= 50 tada je popust = 0,2
  Ako je količina >= 75 Tada je popust = 0,25
  MsgBox “Popust: “ & Popust
Kraj Sub

Primijetite da se svaka naredba If-Then u ovoj rutini izvršava, a vrijednost za Discount može se mijenjati kako se iskazi izvršavaju. Međutim, rutina u konačnici prikazuje ispravnu vrijednost za popust jer su naredbe If-Then prema rastućim vrijednostima popusta.

Sljedeći postupak izvodi iste zadatke korištenjem alternativne ElseIf sintakse. U ovom slučaju, rutina završava odmah nakon izvršenja naredbi za istinit uvjet:

Sub ShowPopust2()
 Dim Quantity As Long
 Dim Discount As Double
 Količina = InputBox ("Unesite količinu: ")
 Ako je količina > 0 i količina < 25 Tada
  Popust = 0,1
 Inače ako je količina >= 25 i količina < 50 Tada
  Popust = 0,15
 Inače ako je količina >= 50 i količina < 75 Tada
  Popust = 0,2
 ElseIf Količina >= 75 Tada
  Popust = 0,25
 Završi ako
 MsgBox “Popust: “ & Popust
Kraj Sub

Ove višestruke ako-onda strukture su prilično glomazne. Možda ćete htjeti koristiti strukturu If-Then samo za jednostavne binarne odluke.

Leave a Comment

Kako postaviti upit u bazu podataka MS Access 2019

Kako postaviti upit u bazu podataka MS Access 2019

Naučite kako postaviti upite u Access bazi podataka uz jednostavne korake i savjete za učinkovito filtriranje i sortiranje podataka.

Osnove tabulatora u programu Word 2013

Osnove tabulatora u programu Word 2013

Tabulatori su oznake položaja u odlomku programa Word 2013 koje određuju kamo će se točka umetanja pomaknuti kada pritisnete tipku Tab. Otkrijte kako prilagoditi tabulatore i optimizirati svoj rad u Wordu.

Kako odabrati i poništiti odabir blokova teksta u Wordu 2010

Kako odabrati i poništiti odabir blokova teksta u Wordu 2010

Word 2010 nudi mnoge načine označavanja i poništavanja odabira teksta. Otkrijte kako koristiti tipkovnicu i miš za odabir blokova. Učinite svoj rad učinkovitijim!

Kako uvući pasus u Wordu 2013

Kako uvući pasus u Wordu 2013

Naučite kako pravilno postaviti uvlaku za odlomak u Wordu 2013 kako biste poboljšali izgled svog dokumenta.

Kako otvoriti i zatvoriti PowerPoint 2019 prezentacije

Kako otvoriti i zatvoriti PowerPoint 2019 prezentacije

Naučite kako jednostavno otvoriti i zatvoriti svoje Microsoft PowerPoint 2019 prezentacije s našim detaljnim vodičem. Pronađite korisne savjete i trikove!

Kako crtati jednostavne objekte u PowerPointu 2013

Kako crtati jednostavne objekte u PowerPointu 2013

Saznajte kako crtati jednostavne objekte u PowerPoint 2013 uz ove korisne upute. Uključuje crtanje linija, pravokutnika, krugova i više.

Kako filtrirati podatke u programu Access 2016

Kako filtrirati podatke u programu Access 2016

U ovom vodiču vam pokazujemo kako koristiti alat za filtriranje u programu Access 2016 kako biste lako prikazali zapise koji dijele zajedničke vrijednosti. Saznajte više o filtriranju podataka.

Formule za zaokruživanje brojeva u Excelu

Formule za zaokruživanje brojeva u Excelu

Saznajte kako koristiti Excelove funkcije zaokruživanja za prikaz čistih, okruglih brojeva, što može poboljšati čitljivost vaših izvješća.

Kako dizajnirati različita zaglavlja i podnožja za različite stranice u programu Word 2013

Kako dizajnirati različita zaglavlja i podnožja za različite stranice u programu Word 2013

Zaglavlje ili podnožje koje postavite isto je za svaku stranicu u vašem Word 2013 dokumentu. Otkrijte kako koristiti različita zaglavlja za parne i neparne stranice.

Excel izvješća: prilagođeno oblikovanje brojeva

Excel izvješća: prilagođeno oblikovanje brojeva

Poboljšajte čitljivost svojih Excel izvješća koristeći prilagođeno oblikovanje brojeva. U ovom članku naučite kako se to radi i koja su najbolja rješenja.