Ako používať If-Then v Exceli 2016 VBA

If-Then je najdôležitejšou riadiacou štruktúrou VBA. Tento príkaz budete pravdepodobne používať každý deň. Štruktúru If-Then použite, ak chcete vykonať jeden alebo viac príkazov podmienečne. Voliteľný Else klauzula, ak sú zahrnuté, môžete vykonať jeden alebo viac príkazov v prípade, že podmienka, ktorú testujete, je to pravda. Tu je jednoduchý postup CheckUser, prekódovaný tak, aby používal štruktúru If-Then-Else:

Sub CheckUser2()
  Používateľské meno = InputBox(“Zadajte svoje meno:”)
  Ak UserName = “Satya Nadella” Potom
    MsgBox („Vitajte Satya...“)
' …[Viac kódu tu] …
  Inak
    MsgBox „Prepáčte. Toto dokáže zvládnuť iba Satya Nadella."
  Koniec Ak
End Sub

Príklady Ak-Potom

Nasledujúca rutina demonštruje štruktúru If-Then bez voliteľnej klauzuly Else:

Sub GreetMe()
  Ak čas < 0,5, potom MsgBox „Dobré ráno“
End Sub

Procedúra GreetMe využíva funkciu Čas VBA na získanie systémového času. Ak je aktuálny čas menší ako 0,5, rutina zobrazí priateľský pozdrav. Ak je Čas väčší alebo rovný 0,5, rutina sa skončí a nič sa nestane.

Ak chcete zobraziť iný pozdrav, ak je Čas väčší alebo rovný 0,5, môžete za prvý pridať ďalší príkaz If-Then:

Sub GreetMe2()
  Ak čas < 0,5, potom MsgBox „Dobré ráno“
  Ak čas >= 0,5, potom MsgBox „Dobré popoludnie“
End Sub

Všimnite si, že >= (väčšie alebo rovné) sa používa pre druhý príkaz If-Then. Tým sa zabezpečí, že bude pokrytý celý deň. Ak by sa použilo > (väčšie ako), nezobrazí sa žiadna správa, ak sa tento postup vykoná presne o 12:00. To je dosť nepravdepodobné, ale s dôležitým programom, ako je tento, nechcete riskovať.

Príklad If-Then-Else

Iný prístup k predchádzajúcemu problému používa klauzulu Else. Tu je rovnaká rutina prekódovaná na použitie štruktúry If-Then-Else:

Sub GreetMe3()
  Ak čas < 0,5, potom MsgBox „Dobré ráno“ Inak _
    MsgBox „Dobré popoludnie“
End Sub

Všimnite si, že znak pokračovania riadku (podčiarkovník) je použitý v predchádzajúcom príklade. Príkaz If-Then-Else je vlastne jeden príkaz. VBA poskytuje mierne odlišný spôsob kódovania konštrukcií If-Then-Else, ktoré používajú príkaz End If. Preto môže byť procedúra GreetMe prepísaná ako

Sub GreetMe4()
  Ak je čas < 0,5, potom
    MsgBox „Dobré ráno“
  Inak
    MsgBox „Dobré popoludnie“
  Koniec Ak
End Sub

V skutočnosti môžete do časti If vložiť ľubovoľný počet príkazov a do časti Else ľubovoľný počet príkazov. Táto syntax sa ľahšie číta a robí príkazy kratšími.

Čo ak potrebujete rozšíriť rutinu GreetMe tak, aby zvládla tri podmienky: ráno, popoludní a večer? Máte dve možnosti: Použite tri príkazy If-Then alebo použite vnorenú štruktúru If-Then-Else. Vnorenie znamená umiestnenie štruktúry If-Then-Else do inej štruktúry If-Then-Else. Prvý prístup s použitím troch príkazov If-Then je jednoduchší:

Sub GreetMe5()
 Dim Msg As String
 Ak je čas < 0,5, potom správa = „ráno“
 Ak čas >= 0,5 a čas < 0,75, potom správa = „Popoludní“
 Ak Čas >= 0,75, potom Msg = „Večer“
 MsgBox „Dobré“ & Msg
End Sub

Nový twist bol pridaný s použitím premennej. Premenná Msg získa inú textovú hodnotu v závislosti od času dňa. Výpis MsgBox zobrazuje pozdrav: Dobré ráno, Dobré popoludnie alebo Dobrý večer.

Nasledujúca rutina vykonáva rovnakú akciu, ale používa štruktúru If-Then-End If:

Sub GreetMe6()
  Dim Msg As String
  Ak je čas < 0,5, potom
    Msg = „Ráno“
  Koniec Ak
  Ak čas >= 0,5 a čas < 0,75, potom
    Msg = „Popoludní“
  Koniec Ak
  Ak Čas >= 0,75 Potom
    Msg = "Večer"
  Koniec Ak
  MsgBox „Dobré“ & Msg
End Sub

Pomocou ElseIf

V predchádzajúcich príkladoch sa vykoná každý príkaz v rutine. O niečo efektívnejšia štruktúra by opustila rutinu hneď, ako sa zistí, že podmienka je pravdivá. Napríklad ráno by sa v procedúre mala zobraziť správa Dobré ráno a potom by sa mala ukončiť – bez hodnotenia ostatných nadbytočných podmienok.

S takouto drobnou rutinou sa nemusíte obávať rýchlosti vykonávania. Ale pre väčšie aplikácie, v ktorých je rýchlosť kritická, by ste mali vedieť o inej syntaxi pre štruktúru If-Then.

Tu je návod, ako môžete prepísať rutinu GreetMe pomocou tejto syntaxe:

Sub GreetMe7()
 Dim Msg As String
 Ak je čas < 0,5, potom
   Msg = „Ráno“
 ElseIf Čas >= 0,5 a čas < 0,75 Potom
   Msg = „Popoludní“
 Inak
   Msg = "Večer"
 Koniec Ak
 MsgBox „Dobré“ & Msg
End Sub

Keď je podmienka pravdivá, VBA vykoná podmienené príkazy a štruktúra If skončí. Inými slovami, tento postup je o niečo efektívnejší ako predchádzajúce príklady. Kompromisom je, že kód je ťažšie zrozumiteľný.

Ďalší príklad Ak-potom

Tu je ďalší príklad, ktorý používa jednoduchú formu štruktúry If-Then. Tento postup vyzve používateľa na zadanie množstva a potom zobrazí príslušnú zľavu na základe množstva, ktoré používateľ zadá:

Sub ShowDiscount()
  Dim Množstvo ako dlhé
  Dvojnásobná zľava
  Množstvo = InputBox(“Zadajte množstvo:”)
  Ak Množstvo > 0, potom zľava = 0,1
  Ak množstvo >= 25, potom zľava = 0,15
  Ak Množstvo >= 50, potom zľava = 0,2
  Ak Množstvo >= 75, potom zľava = 0,25
  MsgBox „Zľava: “ & Zľava
End Sub

Všimnite si, že každý príkaz If-Then v tejto rutine je vykonaný a hodnota pre Discount sa môže meniť počas vykonávania príkazov. Rutina však nakoniec zobrazí správnu hodnotu pre zľavu, pretože príkazy If-Then sú v poradí vzostupných hodnôt zliav.

Nasledujúci postup vykonáva rovnaké úlohy pomocou alternatívnej syntaxe ElseIf. V tomto prípade sa rutina ukončí ihneď po vykonaní príkazov pre pravdivú podmienku:

Sub ShowDiscount2()
 Dim Množstvo ako dlhé
 Dvojnásobná zľava
 Množstvo = InputBox(“Zadajte množstvo:”)
 Ak množstvo > 0 a množstvo < 25, potom
  Zľava = 0,1
 ElseIf Množstvo >= 25 a množstvo < 50 Potom
  Zľava = 0,15
 ElseIf Množstvo >= 50 a množstvo < 75 Potom
  Zľava = 0,2
 ElseIf Množstvo >= 75 Potom
  Zľava = 0,25
 Koniec Ak
 MsgBox „Zľava: “ & Zľava
End Sub

Tieto viaceré štruktúry If-Then sú dosť ťažkopádne. Možno budete chcieť použiť štruktúru If-Then iba na jednoduché binárne rozhodnutia.


Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime len na čítanie v systéme Windows Microsoft Word otvára súbory v režime len na čítanie, takže ich nie je možné upravovať? Nebojte sa, metódy sú uvedené nižšie

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť chyby pri tlači nesprávnych dokumentov Microsoft Word Chyby pri tlači dokumentov Word so zmeneným typom písma, chaotickými odsekmi, chýbajúcim textom alebo strateným obsahom sú pomerne časté. Avšak, nie

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Ak ste použili pero alebo zvýrazňovač na kreslenie na powerpointové snímky počas prezentácie, môžete si kresby uložiť pre ďalšiu prezentáciu alebo ich vymazať, aby ste pri ďalšom zobrazení začali s čistými powerpointovými snímkami. Ak chcete vymazať kresby perom a zvýrazňovačom, postupujte podľa týchto pokynov: Vymazanie riadkov jedna na […]

Obsah knižnice štýlov v SharePointe 2010

Obsah knižnice štýlov v SharePointe 2010

Knižnica štýlov obsahuje súbory CSS, súbory XSL (Extensible Stylesheet Language) a obrázky používané preddefinovanými vzorovými stránkami, rozloženiami strán a ovládacími prvkami v SharePointe 2010. Ak chcete nájsť súbory CSS v knižnici štýlov publikačnej lokality: Vyberte Akcie lokality→Zobraziť Všetok obsah stránky. Zobrazí sa obsah stránky. Knižnica štýlov sa nachádza v […]

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Nezahlcujte svoje publikum obrovskými číslami. V programe Microsoft Excel môžete zlepšiť čitateľnosť svojich tabúľ a zostáv formátovaním čísel tak, aby sa zobrazovali v tisíckach alebo miliónoch.

Ako zdieľať a sledovať lokality SharePoint

Ako zdieľať a sledovať lokality SharePoint

Zistite, ako používať nástroje sociálnych sietí SharePoints, ktoré umožňujú jednotlivcom a skupinám komunikovať, spolupracovať, zdieľať a spájať sa.

Ako previesť dátumy do Julianových formátov v Exceli

Ako previesť dátumy do Julianových formátov v Exceli

Juliánske dátumy sa často používajú vo výrobných prostrediach ako časová pečiatka a rýchla referencia pre číslo šarže. Tento typ kódovania dátumu umožňuje maloobchodníkom, spotrebiteľom a servisným zástupcom identifikovať, kedy bol produkt vyrobený, a teda aj vek produktu. Juliánske dátumy sa používajú aj v programovaní, armáde a astronómii. Rôzne […]

Ako vytvoriť Access Web App

Ako vytvoriť Access Web App

V Accesse 2016 môžete vytvoriť webovú aplikáciu. Čo je to teda webová aplikácia? Web znamená, že je online a aplikácia je len skratka pre „aplikáciu“. Vlastná webová aplikácia je online databázová aplikácia, ku ktorej sa pristupuje z cloudu pomocou prehliadača. Vytvárate a udržiavate webovú aplikáciu vo verzii pre počítače […]

Panel rýchleho spustenia v SharePointe 2010

Panel rýchleho spustenia v SharePointe 2010

Väčšina stránok v SharePointe 2010 zobrazuje zoznam navigačných prepojení na paneli Rýchle spustenie pozdĺž ľavej strany stránky. Panel Rýchle spustenie zobrazuje prepojenia na odporúčaný obsah lokality, ako sú zoznamy, knižnice, lokality a publikačné stránky. Panel Rýchle spustenie obsahuje dva veľmi dôležité odkazy: Odkaz na celý obsah lokality: […]

Čo znamenajú chybové hlásenia v programe Excel?

Čo znamenajú chybové hlásenia v programe Excel?

Pre jednoduché problémy Riešiteľ v Exceli zvyčajne rýchlo nájde optimálne hodnoty premennej Riešiteľ pre cieľovú funkciu. V niektorých prípadoch má však Riešiteľ problém nájsť hodnoty premennej Riešiteľ, ktoré optimalizujú cieľovú funkciu. V týchto prípadoch Riešiteľ zvyčajne zobrazí hlásenie alebo chybové hlásenie, ktoré popisuje alebo diskutuje problém, ktorý […]