Kā lietot If-Then programmā Excel 2016 VBA

Ja-Tad ir VBA vissvarīgākā kontroles struktūra. Jūs, iespējams, izmantosit šo komandu katru dienu. Izmantojiet struktūru Ja-Tad, ja vēlaties izpildīt vienu vai vairākus priekšrakstus ar nosacījumu. Neobligātā Else klauzula, ja tā ir iekļauta, ļauj izpildīt vienu vai vairākus priekšrakstus, ja pārbaudāmais nosacījums nav patiess. Šeit ir vienkārša CheckUser procedūra, kas pārkodēta, lai izmantotu If-Then-Else struktūru:

Sub CheckUser2()
  Lietotājvārds = InputBox ("Ievadiet savu vārdu: ")
  Ja Lietotājvārds = “Satya Nadella”, tad
    MsgBox (“Laipni lūdzam Satja…”)
' …[Vairāk kodu šeit] …
  Citādi
    MsgBox “Atvainojiet. To var vadīt tikai Satja Nadella.
  Beigas Ja
Beigu apakš

Ja-Tad piemēri

Šī rutīna parāda If-Then struktūru bez izvēles Else klauzulas:

Sub GreetMe()
  Ja laiks < 0,5, tad MsgBox “Labrīt”
Beigu apakš

GreetMe procedūra izmanto VBA laika funkciju, lai iegūtu sistēmas laiku. Ja pašreizējais laiks ir mazāks par 0,5, rutīna parāda draudzīgu sveicienu. Ja laiks ir lielāks vai vienāds ar 0,5, rutīna beidzas un nekas nenotiek.

Lai parādītu citu sveicienu, ja laiks ir lielāks vai vienāds ar 0,5, varat pievienot vēl vienu If-Then priekšrakstu aiz pirmā:

Sub GreetMe2()
  Ja laiks < 0,5, tad MsgBox “Labrīt”
  Ja laiks >= 0,5, tad MsgBox “Labdien”
Beigu apakš

Ievērojiet, ka >= (lielāks par vai vienāds ar) tiek izmantots otrajam If-Then priekšrakstam. Tas nodrošina, ka tiek aptverta visa diena. Ja būtu izmantots > (lielāks nekā), ziņojums netiktu parādīts, ja šī procedūra tiktu izpildīta precīzi pulksten 12:00. Tas ir diezgan maz ticams, taču, izmantojot tādu svarīgu programmu kā šī, jūs nevēlaties riskēt.

Ja-tad-cits piemērs

Cita pieeja iepriekšējai problēmai izmanto Else klauzulu. Šeit ir tā pati rutīna, kas pārkodēta, lai izmantotu If-Then-Else struktūru:

Sub GreetMe3()
  Ja laiks < 0,5, tad MsgBox "Labrīt" Citādi _
    MsgBox "Labdien"
Beigu apakš

Ņemiet vērā, ka iepriekšējā piemērā tiek izmantota rindas turpinājuma rakstzīme (pasvītra). Ja-tad-cits paziņojums patiesībā ir viens paziņojums. VBA nodrošina nedaudz atšķirīgu veidu, kā kodēt If-Then-Else konstrukcijas, kurās tiek izmantots priekšraksts End If. Tāpēc GreetMe procedūru var pārrakstīt kā

Sub GreetMe4()
  Ja Laiks < 0,5 Tad
    MsgBox "Labrīt"
  Citādi
    MsgBox "Labdien"
  Beigas Ja
Beigu apakš

Faktiski sadaļā If varat ievietot neierobežotu skaitu priekšrakstu, bet daļā Else - neierobežotu skaitu paziņojumu. Šī sintakse ir vieglāk lasāma un padara paziņojumus īsākus.

Ko darīt, ja jums ir jāpaplašina GreetMe rutīna, lai tiktu galā ar trim nosacījumiem: no rīta, pēcpusdienā un vakarā? Jums ir divas iespējas: izmantojiet trīs If-Then priekšrakstus vai izmantojiet ligzdotu If-Then-Else struktūru. Ligzdošana nozīmē struktūras If-Then-Celse ievietošanu citā If-Then-Citt struktūrā. Pirmā pieeja, izmantojot trīs If-Then paziņojumus, ir vienkāršāka:

Sub GreetMe5()
 Dim Msg As String
 Ja laiks < 0,5, tad ziņa = "Rīts"
 Ja laiks >= 0,5 un laiks < 0,75, tad ziņa = “pēcpusdiena”
 Ja laiks >= 0,75, tad ziņa = "vakars"
 MsgBox “Labs” & Ziņojums
Beigu apakš

Jauns pavērsiens tika pievienots, izmantojot mainīgo. Mainīgais Msg iegūst atšķirīgu teksta vērtību atkarībā no diennakts laika. MsgBox paziņojumā tiek parādīts sveiciens: Labrīt, Labvakar vai Labvakar.

Tālāk norādītā rutīna veic to pašu darbību, bet izmanto If-Then-End If struktūru:

Sub GreetMe6()
  Dim Msg As String
  Ja Laiks < 0,5 Tad
    Ziņa = "Rīts"
  Beigas Ja
  Ja laiks >= 0,5 un laiks < 0,75, tad
    Ziņa = "Pēcpusdiena"
  Beigas Ja
  Ja Laiks >= 0,75 Tad
    Ziņa = "Vakars"
  Beigas Ja
  MsgBox “Labs” & Ziņojums
Beigu apakš

Izmantojot ElseIf

Iepriekšējos piemēros katrs rutīnas paziņojums tiek izpildīts. Nedaudz efektīvāka struktūra izietu no rutīnas, tiklīdz tiek konstatēts, ka nosacījums ir patiess. Piemēram, no rīta procedūrai jāparāda ziņojums Labrīt un pēc tam jāiziet, neizvērtējot citus liekos apstākļus.

Izmantojot šādu sīku rutīnu, jums nav jāuztraucas par izpildes ātrumu. Bet lielākām lietojumprogrammām, kurās ātrums ir kritisks, jums jāzina cita struktūras If-Then sintakse.

Lūk, kā jūs varat pārrakstīt GreetMe rutīnu, izmantojot šo sintaksi:

Sub GreetMe7()
 Dim Msg As String
 Ja Laiks < 0,5 Tad
   Ziņa = "Rīts"
 ElseIf Laiks >= 0,5 Un laiks < 0,75 Tad
   Ziņa = "Pēcpusdiena"
 Citādi
   Ziņa = "Vakars"
 Beigas Ja
 MsgBox “Labs” & Ziņojums
Beigu apakš

Ja nosacījums ir patiess, VBA izpilda nosacījumu paziņojumus un If struktūra beidzas. Citiem vārdiem sakot, šī procedūra ir nedaudz efektīvāka nekā iepriekšējie piemēri. Kompromiss ir tāds, ka kodu ir grūtāk saprast.

Vēl viens Ja-Tad piemērs

Šeit ir vēl viens piemērs, kurā izmantota struktūras If-Ten vienkāršā forma. Šī procedūra pieprasa lietotājam norādīt daudzumu un pēc tam parāda atbilstošo atlaidi, pamatojoties uz lietotāja ievadīto daudzumu:

Sub ShowDiscount()
  Dim Daudzums Tik ilgi
  Dim atlaide kā dubultā
  Daudzums = ievades lodziņš (“Ievadiet daudzumu:”)
  Ja daudzums > 0, tad atlaide = 0,1
  Ja daudzums >= 25, tad atlaide = 0,15
  Ja Daudzums >= 50, tad Atlaide = 0.2
  Ja daudzums >= 75, tad atlaide = 0,25
  MsgBox “Atlaide: “ & Atlaide
Beigu apakš

Ņemiet vērā, ka katrs šīs rutīnas priekšraksts If-Ten tiek izpildīts un Atlaides vērtība var mainīties, izpildot paziņojumus. Tomēr rutīna galu galā parāda pareizo Atlaides vērtību, jo paziņojumi Ja-Tad ir Atlaides vērtību augošā secībā.

Šī procedūra veic tos pašus uzdevumus, izmantojot alternatīvo ElseIf sintaksi. Šajā gadījumā rutīna beidzas uzreiz pēc patiesa nosacījuma paziņojumu izpildes:

Sub ShowDiscount2()
 Dim Daudzums Tik ilgi
 Dim atlaide kā dubultā
 Daudzums = InputBox ("Ievadiet daudzumu: ")
 Ja daudzums > 0 un daudzums < 25, tad
  Atlaide = 0,1
 ElseIf Daudzums >= 25 Un daudzums < 50 Tad
  Atlaide = 0,15
 ElseIf Daudzums >= 50 Un daudzums < 75 Tad
  Atlaide = 0,2
 ElseIf Daudzums >= 75 Tad
  Atlaide = 0,25
 Beigas Ja
 MsgBox “Atlaide: “ & Atlaide
Beigu apakš

Šīs vairākas Ja-Tad struktūras ir diezgan apgrūtinošas. Ja-tad struktūru, iespējams, vēlēsities izmantot tikai vienkāršiem bināriem lēmumiem.


Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows Microsoft Word atver failus tikai lasīšanas režīmā, padarot tos neiespējamu rediģēt? Neuztraucieties, metodes ir norādītas zemāk

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā labot kļūdas, drukājot nepareizus Microsoft Word dokumentus.Kļūdas Word dokumentu drukāšanā ar mainītiem fontiem, nekārtīgām rindkopām, trūkstoša teksta vai pazaudētu saturu ir diezgan izplatītas. Tomēr nevajag

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Ja prezentācijas laikā esat izmantojis pildspalvu vai marķieri, lai zīmētu uz PowerPoint slaidiem, varat saglabāt zīmējumus nākamajai prezentācijai vai izdzēst tos, lai nākamajā reizē, kad to parādīsit, jūs sāktu ar tīriem PowerPoint slaidiem. Izpildiet šos norādījumus, lai dzēstu pildspalvas un marķiera zīmējumus: Līniju dzēšana pa vienai […]

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Stilu bibliotēkā ir CSS faili, paplašināmās stila lapu valodas (XSL) faili un attēli, ko izmanto iepriekš definētas šablona lapas, lapu izkārtojumi un vadīklas programmā SharePoint 2010. Lai atrastu CSS failus publicēšanas vietnes stilu bibliotēkā: izvēlieties Vietnes darbības → Skatīt Viss vietnes saturs. Tiek parādīts vietnes saturs. Stila bibliotēka atrodas […]

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Nepārsedziet savu auditoriju ar milzīgiem skaitļiem. Programmā Microsoft Excel varat uzlabot informācijas paneļu un pārskatu lasāmību, formatējot skaitļus tā, lai tie tiktu rādīti tūkstošos vai miljonos.

Kā koplietot un sekot līdzi SharePoint vietnēm

Kā koplietot un sekot līdzi SharePoint vietnēm

Uzziniet, kā izmantot SharePoints sociālo tīklu rīkus, kas ļauj indivīdiem un grupām sazināties, sadarboties, koplietot un sazināties.

Kā programmā Excel konvertēt datumus Juliana formātos

Kā programmā Excel konvertēt datumus Juliana formātos

Jūlija datumi ražošanas vidēs bieži tiek izmantoti kā laikspiedols un ātra atsauce partijas numuram. Šāda veida datuma kodēšana ļauj mazumtirgotājiem, patērētājiem un pakalpojumu aģentiem noteikt produkta izgatavošanas laiku un līdz ar to arī produkta vecumu. Jūlija datumi tiek izmantoti arī programmēšanā, militārajā jomā un astronomijā. Savādāk […]

Kā izveidot Access Web App

Kā izveidot Access Web App

Programmā Access 2016 varat izveidot tīmekļa lietotni. Kas tad vispār ir tīmekļa lietotne? Tīmeklis nozīmē, ka tas ir tiešsaistē, un lietotne ir tikai “lietojumprogrammas” saīsinājums. Pielāgota tīmekļa lietotne ir tiešsaistes datu bāzes lietojumprogramma, kurai var piekļūt no mākoņa, izmantojot pārlūkprogrammu. Jūs veidojat un uzturat tīmekļa lietotni darbvirsmas versijā […]

Ātrās palaišanas josla programmā SharePoint 2010

Ātrās palaišanas josla programmā SharePoint 2010

Lielākā daļa SharePoint 2010 lapu ātrās palaišanas joslā lapas kreisajā pusē parāda navigācijas saišu sarakstu. Ātrās palaišanas joslā tiek rādītas saites uz piedāvāto vietņu saturu, piemēram, sarakstiem, bibliotēkām, vietnēm un publicēšanas lapām. Ātrās palaišanas joslā ir divas ļoti svarīgas saites: Visa vietnes satura saite: […]

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Vienkāršām problēmām risinātājs programmā Excel parasti ātri atrod optimālās Risinātāja mainīgā vērtības mērķa funkcijai. Taču dažos gadījumos Solver ir grūti atrast Solver mainīgā vērtības, kas optimizē mērķa funkciju. Šādos gadījumos Solver parasti parāda ziņojumu vai kļūdas ziņojumu, kurā aprakstīta vai apspriesta problēma, ko […]