Kaip naudoti „If-Then“ programoje „Excel 2016 VBA“.

If-Then yra svarbiausia VBA valdymo struktūra. Tikriausiai šią komandą naudosite kasdien. Jei norite sąlygiškai įvykdyti vieną ar daugiau teiginių, naudokite struktūrą If-Then. Neprivaloma sąlyga Else, jei įtraukta, leidžia vykdyti vieną ar daugiau teiginių, jei tikrinama sąlyga nėra teisinga. Štai paprasta „CheckUser“ procedūra, perkoduota naudoti „If-Then-Else“ struktūrą:

Sub CheckUser2()
  Vartotojo vardas = InputBox („Įveskite savo vardą:“)
  Jei vartotojo vardas = „Satya Nadella“, tada
    MsgBox („Sveiki, Satya…“)
' …[Daugiau kodo čia] …
  Kitas
    MsgBox „Atsiprašau. Tik Satya Nadella gali tai valdyti.
  Pabaiga, jei
Pabaigos sub

Jei-tada pavyzdžiai

Ši rutina demonstruoja If-Then struktūrą be pasirenkamos Else sąlygos:

Sub GreetMe()
  Jei laikas < 0,5, tada MsgBox „Labas rytas“
Pabaigos sub

„GreetMe“ procedūra naudoja VBA laiko funkciją, kad gautų sistemos laiką. Jei dabartinis laikas yra mažesnis nei 0,5, programa rodo draugišką pasisveikinimą. Jei laikas yra didesnis arba lygus 0,5, rutina baigiasi ir nieko neįvyksta.

Jei norite rodyti kitokį sveikinimą, jei laikas yra didesnis arba lygus .5, po pirmojo galite pridėti kitą If-Then teiginį:

Sub GreetMe2()
  Jei laikas < 0,5, tada MsgBox „Labas rytas“
  Jei laikas >= 0,5, tada „MsgBox“ „Laba diena“
Pabaigos sub

Atkreipkite dėmesį, kad >= (didesnis arba lygus) naudojamas antrajam If-Then teiginiui. Tai užtikrina, kad visa diena bus padengta. Jei > (didesnis nei) būtų panaudotas, pranešimas nebūtų rodomas, jei ši procedūra būtų atlikta tiksliai 12:00 val. Tai mažai tikėtina, bet naudojant tokią svarbią programą, kaip ši, nenorite rizikuoti.

Jei-tada-kita pavyzdys

Kitas požiūris į ankstesnę problemą naudoja sąlygą Else. Štai ta pati tvarka, perkoduota naudoti „If-Then-Else“ struktūrą:

Sub GreetMe3()
  Jei laikas < 0,5, tada „MsgBox“ „Labas rytas“ dar _
    MsgBox „Laba diena“
Pabaigos sub

Atkreipkite dėmesį, kad ankstesniame pavyzdyje naudojamas eilutės tęsimo simbolis (pabrauktas brūkšnys). „If-Then-Else“ teiginys iš tikrųjų yra vienas teiginys. VBA suteikia šiek tiek kitokį „If-Then-Else“ konstrukcijų, naudojančių „End If“ sakinį, kodavimo būdą. Todėl „GreetMe“ procedūrą galima perrašyti kaip

Sub GreetMe4()
  Jei laikas < 0,5 Tada
    MsgBox „Labas rytas“
  Kitas
    MsgBox „Laba diena“
  Pabaiga, jei
Pabaigos sub

Tiesą sakant, galite įterpti bet kokį skaičių teiginių po „If“ dalimi ir bet kokį teiginių skaičių į dalį „Else“. Šią sintaksę lengviau skaityti, o teiginiai sutrumpėja.

Ką daryti, jei reikia išplėsti „GreetMe“ rutiną, kad būtų galima išspręsti tris sąlygas: rytą, popietę ir vakarą? Turite dvi parinktis: naudokite tris If-Then teiginius arba naudokite įdėtą If-Then-Else struktūrą. Įdėjimas reiškia „Jei-tada-kita“ struktūros patalpinimą kitoje „Jei-tada-else“ struktūroje. Pirmasis metodas, naudojant tris If-Then teiginius, yra paprastesnis:

Sub GreetMe5()
 Pritemdyti pranešimą kaip eilutę
 Jei laikas < 0,5, tada žinutė = „Rytas“
 Jei laikas >= 0,5, o laikas < 0,75, tada žinutė = „popietė“
 Jei laikas >= 0,75, tada žinutė = „Vakaras“
 MsgBox "Geras" & Msg
Pabaigos sub

Buvo pridėtas naujas posūkis naudojant kintamąjį. Kintamasis Msg gauna skirtingą teksto reikšmę, priklausomai nuo paros laiko. MsgBox sakinyje rodomas sveikinimas: Labas rytas, Laba diena arba Labas vakaras.

Ši rutina atlieka tą patį veiksmą, bet naudoja If-Then-End If struktūrą:

Sub GreetMe6()
  Pritemdyti pranešimą kaip eilutę
  Jei laikas < 0,5 Tada
    Žinutė = "Rytas"
  Pabaiga, jei
  Jei laikas >= 0,5, o laikas < 0,75, tada
    Žinutė = „Popietė“
  Pabaiga, jei
  Jei laikas >= 0,75 Tada
    Žinutė = "Vakaras"
  Pabaiga, jei
  MsgBox "Geras" & Msg
Pabaigos sub

Naudojant ElseIf

Ankstesniuose pavyzdžiuose vykdomas kiekvienas įprastos teiginys. Šiek tiek efektyvesnė struktūra išeitų iš rutinos, kai tik būtų nustatyta, kad sąlyga yra teisinga. Pavyzdžiui, ryte procedūros metu turėtų būti rodomas pranešimas „Labas rytas“, o tada išeiti – neįvertinant kitų nereikalingų sąlygų.

Atlikdami tokią nedidelę rutiną, jums nereikia jaudintis dėl vykdymo greičio. Tačiau didesnėms programoms, kuriose greitis yra labai svarbus, turėtumėte žinoti apie kitą „If-Then“ struktūros sintaksę.

Štai kaip galite perrašyti GreetMe rutiną naudodami šią sintaksę:

Sub GreetMe7()
 Pritemdyti pranešimą kaip eilutę
 Jei laikas < 0,5 Tada
   Žinutė = "Rytas"
 ElseIf Laikas >= 0,5 Ir laikas < 0,75 Tada
   Žinutė = „Popietė“
 Kitas
   Žinutė = "Vakaras"
 Pabaiga, jei
 MsgBox "Geras" & Msg
Pabaigos sub

Kai sąlyga yra teisinga, VBA vykdo sąlyginius sakinius, o If struktūra baigiasi. Kitaip tariant, ši procedūra yra šiek tiek efektyvesnė nei ankstesni pavyzdžiai. Kompromisas yra tas, kad kodą sunkiau suprasti.

Kitas „Jei-Tada“ pavyzdys

Štai dar vienas pavyzdys, kuriame naudojama paprasta „If-Then“ struktūros forma. Ši procedūra ragina vartotoją nurodyti kiekį ir tada parodo atitinkamą nuolaidą, atsižvelgiant į vartotojo įvestą kiekį:

Sub ShowDiscount()
  Dim Kiekis Kol kas
  Nedidelė nuolaida kaip dviguba
  Kiekis = įvesties laukelis („Įveskite kiekį:“)
  Jei kiekis > 0, tada nuolaida = 0,1
  Jei kiekis >= 25, tada nuolaida = 0,15
  Jei kiekis >= 50, tada nuolaida = 0,2
  Jei kiekis >= 75, tada nuolaida = 0,25
  MsgBox „Nuolaida:“ & Nuolaida
Pabaigos sub

Atkreipkite dėmesį, kad kiekvienas šios procedūros „If-Then“ sakinys yra vykdomas, o nuolaidos reikšmė gali keistis vykdant teiginius. Tačiau įprasta tvarka galiausiai parodo teisingą nuolaidos reikšmę, nes teiginiai „If-Then“ pateikiami didėjančia Nuolaidos verčių tvarka.

Ši procedūra atlieka tas pačias užduotis naudojant alternatyvią ElseIf sintaksę. Šiuo atveju rutina baigiasi iškart įvykdžius teisingos sąlygos teiginius:

Sub ShowDiscount2()
 Dim Kiekis Kol kas
 Nedidelė nuolaida kaip dviguba
 Kiekis = InputBox („Įveskite kiekį:“)
 Jei kiekis > 0 ir kiekis < 25 Tada
  Nuolaida = 0,1
 ElseIf Kiekis >= 25 Ir kiekis < 50 Tada
  Nuolaida = 0,15
 ElseIf Kiekis >= 50 Ir kiekis < 75 Tada
  Nuolaida = 0,2
 ElseIf Kiekis >= 75 Tada
  Nuolaida = 0,25
 Pabaiga, jei
 MsgBox „Nuolaida:“ & Nuolaida
Pabaigos sub

Šios kelios „If-Then“ struktūros yra gana sudėtingos. Jei-Then struktūrą galite naudoti tik paprastiems dvejetainiams sprendimams priimti.


Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti Microsoft Word atidaryti failų tik skaitymo režimu sistemoje Windows. Microsoft Word atidaro failus tik skaitymo režimu, todėl jų redaguoti neįmanoma? Nesijaudinkite, metodai pateikiami žemiau

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti klaidas spausdinant neteisingus Microsoft Word dokumentus.Klaidos spausdinant Word dokumentus su pakeistais šriftais, netvarkingomis pastraipomis, trūkstamo teksto ar prarasto turinio yra gana dažnos. Tačiau nereikia

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Jei naudodami rašiklį ar žymeklį piešėte ant savo PowerPoint skaidrės pristatymo metu, galite išsaugoti brėžinius kitam pristatymui arba ištrinti juos, kad kitą kartą rodydami pradėtumėte nuo švarių PowerPoint skaidrių. Vykdykite šias instrukcijas, kad ištrintumėte rašiklio ir žymeklio piešinius: Trinti linijas po vieną […]

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekoje yra CSS failų, XSL (Extensible Stylesheet Language) failų ir vaizdų, naudojamų iš anksto nustatytų puslapių puslapiuose, puslapių išdėstymuose ir valdikliuose „SharePoint 2010“. Norėdami rasti CSS failus publikavimo svetainės stilių bibliotekoje: pasirinkite Svetainės veiksmai → Peržiūrėti Visas svetainės turinys. Pasirodo svetainės turinys. Stiliaus biblioteka yra […]

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Neužkraukite savo auditorijos milžiniškais skaičiais. Programoje „Microsoft Excel“ galite pagerinti informacijos suvestinių ir ataskaitų skaitomumą formatuodami skaičius, kad jie būtų rodomi tūkstančiais arba milijonais.

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Sužinokite, kaip naudoti „SharePoints“ socialinių tinklų įrankius, leidžiančius asmenims ir grupėms bendrauti, bendradarbiauti, bendrinti ir prisijungti.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Julijaus datos dažnai naudojamos gamybos aplinkoje kaip laiko žyma ir greita partijos numerio nuoroda. Šio tipo datos kodavimas leidžia mažmenininkams, vartotojams ir paslaugų agentams nustatyti, kada produktas buvo pagamintas, taigi ir produkto amžių. Julijaus datos taip pat naudojamos programavimo, kariuomenės ir astronomijos srityse. Skirtingi […]

Kaip sukurti „Access“ žiniatinklio programą

Kaip sukurti „Access“ žiniatinklio programą

Galite sukurti žiniatinklio programą naudodami „Access 2016“. Taigi, kas vis dėlto yra žiniatinklio programa? Na, žiniatinklis reiškia, kad jis yra internete, o programa yra tik „programos“ santrumpa. Pasirinktinė žiniatinklio programa yra internetinė duomenų bazės programa, pasiekiama iš debesies naudojant naršyklę. Kuriate ir prižiūrite žiniatinklio programą darbalaukio versijoje […]

Greitosios paleidimo juosta „SharePoint 2010“.

Greitosios paleidimo juosta „SharePoint 2010“.

Daugumoje „SharePoint 2010“ puslapių sparčiojo paleidimo juostoje, esančioje kairėje puslapio pusėje, pateikiamas naršymo nuorodų sąrašas. Greitosios paleidimo juostoje rodomos nuorodos į siūlomą svetainės turinį, pvz., sąrašus, bibliotekas, svetaines ir publikavimo puslapius. Greitojo paleidimo juostoje yra dvi labai svarbios nuorodos: Visas svetainės turinys: […]

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Paprastoms problemoms spręsti „Excel“ sprendėjas paprastai greitai suranda optimalias tikslinės funkcijos „Solver“ kintamųjų reikšmes. Tačiau kai kuriais atvejais „Solver“ turi problemų ieškant „Solver“ kintamųjų reikšmių, optimizuojančių tikslo funkciją. Tokiais atvejais „Solver“ paprastai rodo pranešimą arba klaidos pranešimą, kuriame aprašoma arba aptariama problema, kurią […]