Kako uporabljati če-potem v Excelu 2016 VBA

Če-Potem je najpomembnejša krmilna struktura VBA. Ta ukaz boste verjetno uporabljali vsak dan. Uporabite strukturo If-Then, če želite pogojno izvesti enega ali več stavkov. Izbirna klavzula Else, če je vključena, vam omogoča izvedbo enega ali več stavkov, če pogoj, ki ga preizkušate, ni resničen. Tukaj je preprost postopek CheckUser, prekodiran za uporabo strukture If-Then-Else:

Sub CheckUser2()
  Uporabniško ime = InputBox ("Vnesite svoje ime: ")
  Če je uporabniško ime = »Satya Nadella« Nato
    MsgBox ("Dobrodošla Satya ...")
' …[Več kode tukaj] …
  Drugače
    MsgBox »Oprosti. To lahko vodi samo Satya Nadella."
  Konec Če
Končni sub

Če-Potem primeri

Naslednja rutina prikazuje strukturo If-Then brez izbirne klavzule Else:

Sub GreetMe()
  Če je čas < 0,5, potem MsgBox »Dobro jutro«
Končni sub

Postopek GreetMe za pridobivanje sistemskega časa uporablja funkcijo Time VBA. Če je trenutni čas manjši od 0,5, rutina prikaže prijazen pozdrav. Če je Time večji ali enak 0,5, se rutina konča in nič se ne zgodi.

Če želite prikazati drugačen pozdrav, če je Time večji ali enak .5, lahko za prvim dodate še en stavek If-Then:

Sub GreetMe2()
  Če je čas < 0,5, potem MsgBox »Dobro jutro«
  Če je čas >= 0,5, potem MsgBox »Dober dan«
Končni sub

Upoštevajte, da je >= (večje ali enako) uporabljeno za drugi stavek If-Then. To zagotavlja, da je pokrit ves dan. Če bi bil uporabljen > (večji od), se ne bi prikazalo nobeno sporočilo, če bi bil ta postopek izveden točno ob 12.00. To je malo verjetno, vendar s tako pomembnim programom, kot je ta, ne želite tvegati.

Primer Če-Poto-Else

Drug pristop k prejšnjemu problemu uporablja klavzulo Else. Tukaj je ista rutina, prekodirana za uporabo strukture If-Then-Else:

Sub GreetMe3()
  Če je čas < 0,5 potem MsgBox »Dobro jutro« Drugače _
    MsgBox "Dober dan"
Končni sub

Upoštevajte, da je v prejšnjem primeru uporabljen znak za nadaljevanje vrstice (podčrtaj). Stavek If-Then-Else je pravzaprav en sam stavek. VBA ponuja nekoliko drugačen način kodiranja konstruktov If-Then-Else, ki uporabljajo stavek End If. Zato lahko postopek GreetMe prepišemo kot

Sub GreetMe4()
  Če je čas < 0,5 potem
    MsgBox "Dobro jutro"
  Drugače
    MsgBox "Dober dan"
  Konec Če
Končni sub

Pravzaprav lahko v del If vstavite poljubno število stavkov in pod del Else poljubno število stavkov. Ta sintaksa je lažja za branje in naredi izjave krajše.

Kaj pa, če morate rutino GreetMe razširiti na tri pogoje: zjutraj, popoldne in zvečer? Na voljo imate dve možnosti: uporabite tri stavke If-Then ali uporabite ugnezdeno strukturo If-Then-Else. Gnezdenje pomeni namestitev strukture If-Then-Else v drugo strukturo If-Then-Else. Prvi pristop z uporabo treh stavkov If-Then je enostavnejši:

Sub GreetMe5()
 Zatemni sporočilo kot niz
 Če je čas < 0,5 potem Msg = "Jutro"
 Če je čas >= 0,5 in čas < 0,75, potem sporočilo = »popoldan«
 Če je čas >= 0,75, potem sporočilo = "zvečer"
 MsgBox »Dobro« & Msg
Končni sub

Z uporabo spremenljivke je bil dodan nov zasuk. Spremenljivka Msg dobi drugačno besedilno vrednost, odvisno od časa v dnevu. Izjava MsgBox prikaže pozdrav: Dobro jutro, dober dan ali dober večer.

Naslednja rutina izvede isto dejanje, vendar uporablja strukturo If-Then-End If:

Sub GreetMe6()
  Zatemni sporočilo kot niz
  Če je čas < 0,5 potem
    Sporočilo = "Jutro"
  Konec Če
  Če je čas >= 0,5 in čas < 0,75 potem
    Sporočilo = "popoldne"
  Konec Če
  Če je čas >= 0,75 Potem
    Sporočilo = "Večer"
  Konec Če
  MsgBox »Dobro« & Msg
Končni sub

Uporaba ElseIf

V prejšnjih primerih se izvede vsak stavek v rutini. Nekoliko učinkovitejša struktura bi izstopila iz rutine, takoj ko se ugotovi, da je pogoj resničen. Zjutraj naj bi na primer postopek prikazal sporočilo Dobro jutro in nato zapustil – ne da bi ocenil druge odvečne pogoje.

Z majhno rutino, kot je ta, vam ni treba skrbeti za hitrost izvajanja. Toda za večje aplikacije, pri katerih je hitrost ključnega pomena, bi morali poznati drugo sintakso za strukturo If-Then.

Tukaj je, kako lahko prepišete rutino GreetMe s to sintakso:

Sub GreetMe7()
 Zatemni sporočilo kot niz
 Če je čas < 0,5 potem
   Sporočilo = "Jutro"
 Drugače Če je čas >= 0,5 in čas < 0,75 Potem
   Sporočilo = "popoldne"
 Drugače
   Sporočilo = "Večer"
 Konec Če
 MsgBox »Dobro« & Msg
Končni sub

Ko je pogoj resničen, VBA izvede pogojne stavke in struktura If se konča. Z drugimi besedami, ta postopek je nekoliko učinkovitejši od prejšnjih primerov. Kompromis je, da je kodo težje razumeti.

Še en primer Če-Potem

Tukaj je še en primer, ki uporablja preprosto obliko strukture If-Then. Ta postopek uporabnika pozove k količini in nato prikaže ustrezen popust glede na količino, ki jo uporabnik vnese:

Sub ShowDiscount()
  Dim Quantity As Long
  Dim Discount As Double
  Količina = InputBox ("Vnesite količino:")
  Če je količina > 0, potem je popust = 0,1
  Če je količina >= 25, potem je popust = 0,15
  Če je količina >= 50, potem je popust = 0,2
  Če je količina >= 75, potem je popust = 0,25
  MsgBox "Popust: " & popust
Končni sub

Upoštevajte, da se vsak stavek If-Then v tej rutini izvede in vrednost za Discount se lahko spremeni, ko se stavki izvajajo. Vendar rutina na koncu prikaže pravilno vrednost za popust, ker so stavki Če-Potem v vrstnem redu naraščajočih vrednosti popusta.

Naslednji postopek izvaja enake naloge z uporabo alternativne sintakse ElseIf. V tem primeru se rutina konča takoj po izvedbi stavkov za resnični pogoj:

Sub ShowDiscount2()
 Dim Quantity As Long
 Dim Discount As Double
 Količina = InputBox ("Vnesite količino: ")
 Če je količina > 0 in količina < 25, potem
  Popust = 0,1
 Drugače Če je količina >= 25 in količina < 50 Potem
  Popust = 0,15
 Drugače Če je količina >= 50 in količina < 75 Potem
  Popust = 0,2
 Količina ElseIf >= 75 Potem
  Popust = 0,25
 Konec Če
 MsgBox "Popust: " & popust
Končni sub

Te številne strukture Če-Potem so precej okorne. Morda boste želeli uporabiti strukturo If-Then samo za preproste binarne odločitve.


Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows Microsoft Word odpira datoteke v načinu samo za branje, zaradi česar jih je nemogoče urejati? Ne skrbite, metode so spodaj

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako odpraviti napake pri tiskanju nepravilnih dokumentov Microsoft Word Napake pri tiskanju dokumentov Word s spremenjeno pisavo, neurejenimi odstavki, manjkajočim besedilom ali izgubljeno vsebino so precej pogoste. Vendar pa ne

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Če ste med predstavitvijo uporabili pero ali označevalnik za risanje po diapozitivih PowerPoint, lahko risbe shranite za naslednjo predstavitev ali jih izbrišete, tako da boste naslednjič, ko ga pokažete, začeli s čistimi PowerPointovimi diapozitivi. Sledite tem navodilom za brisanje risb s peresom in označevalnikom: Brisanje črt ena na […]

Vsebina knjižnice slogov v SharePointu 2010

Vsebina knjižnice slogov v SharePointu 2010

Knjižnica slogov vsebuje datoteke CSS, datoteke Extensible Stylesheet Language (XSL) in slike, ki jih uporabljajo vnaprej določene glavne strani, postavitve strani in kontrolniki v SharePointu 2010. Če želite poiskati datoteke CSS v knjižnici slogov na založniškem mestu: Izberite Dejanja mesta→ Pogled Vsa vsebina spletnega mesta. Prikaže se vsebina spletnega mesta. Knjižnica Style se nahaja v […]

Oblikujte številke v tisoče in milijone v poročilih Excel

Oblikujte številke v tisoče in milijone v poročilih Excel

Ne preobremenjujte občinstva z ogromnimi številkami. V Microsoft Excelu lahko izboljšate berljivost svojih nadzornih plošč in poročil tako, da oblikujete svoje številke tako, da se prikažejo v tisočih ali milijonih.

Kako deliti in spremljati SharePointova spletna mesta

Kako deliti in spremljati SharePointova spletna mesta

Naučite se uporabljati SharePointova orodja za socialno mreženje, ki posameznikom in skupinam omogočajo komunikacijo, sodelovanje, skupno rabo in povezovanje.

Kako pretvoriti datume v julijanske oblike v Excelu

Kako pretvoriti datume v julijanske oblike v Excelu

Julijanski datumi se v proizvodnih okoljih pogosto uporabljajo kot časovni žig in hitra referenca za številko serije. Ta vrsta datumskega kodiranja omogoča trgovcem na drobno, potrošnikom in servisnim agentom, da ugotovijo, kdaj je bil izdelek izdelan in s tem starost izdelka. Julijanski datumi se uporabljajo tudi v programiranju, vojski in astronomiji. Drugačen […]

Kako ustvariti spletno aplikacijo Access

Kako ustvariti spletno aplikacijo Access

Spletno aplikacijo lahko ustvarite v Accessu 2016. Kaj je torej spletna aplikacija? No, splet pomeni, da je na spletu, aplikacija pa je le okrajšava za »aplikacijo«. Spletna aplikacija po meri je spletna aplikacija baze podatkov, do katere dostopate iz oblaka z uporabo brskalnika. Spletno aplikacijo gradite in vzdržujete v namizni različici […]

Vrstica za hitri zagon v SharePointu 2010

Vrstica za hitri zagon v SharePointu 2010

Večina strani v SharePointu 2010 prikaže seznam navigacijskih povezav v vrstici za hitri zagon na levi strani strani. Vrstica za hitri zagon prikazuje povezave do predstavljene vsebine spletnega mesta, kot so seznami, knjižnice, spletna mesta in strani za objavljanje. Vrstica za hitri zagon vključuje dve zelo pomembni povezavi: Povezava do vse vsebine spletnega mesta: […]

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Pri preprostih težavah reševalec v Excelu običajno hitro najde optimalne vrednosti spremenljivke reševalca za ciljno funkcijo. Toda v nekaterih primerih ima Solver težave pri iskanju vrednosti spremenljivke Solver, ki optimizirajo ciljno funkcijo. V teh primerih Solver običajno prikaže sporočilo ali sporočilo o napaki, ki opisuje ali razpravlja o težavi, ki […]