VBA MsgBox Jah / Ei | Kuidas luua jah / ei vastust?

Exceli VBA MsgBox (jah / ei)

In VBA , kasutades kirjakasti saame luua jah ei msgbox mida kasutatakse rekord kasutaja sisend põhineb kliki jah või ei, süntaksi teha jah ei kirjakasti on järgmine muutuja = MsgBox ( "Tekst", vbQuestion + vbYesNo + vbDefaultButton2, “Sõnumikasti pealkiri”), kus muutuja tuleb deklareerida täisarvuna.

Sageli peame VBA-kodeerimisel koguma kasutajatelt sisendväärtused mõne ülesande täitmiseks ja üks sellistest ülesannetest kasutajate vastuse Jah või Ei kogumiseks. VBA MsgBoxi abil Jah Ei, saame koodi kirjutada, et koodis edasi liikuda.

Teatud olukordades peame võib-olla esitama kasutaja ees vastuse andmiseks Jah või Ei ja selle vastuse põhjal saame VBA-koodi tegelikult käivitada.

Näiteks vaadake VBA-s allolevat MsgBoxi pilti.

Kui kasutaja ütleb „Jah”, võime konkreetse ülesande täitmiseks koodi kirjutada ”ja kui kasutaja ütleb„ Ei ”, võime koodi kirjutada ka teise ülesande komplekti täitmiseks.

Kuidas töötada MsgBoxiga jah / ei vastus?

Selle VBA sõnumikasti Jah või Ei saate alla laadida siit - VBA teatekast Jah või Ei Exceli mall

Näide # 1 - kopeerimine ja kleepimine vastuse põhjal

Näiteks vaadake allolevat koodi.

Kood:

 Sub MessageBox_Yes_NO_Example1 () Hämarda AnswerYes stringina Dim AnswerNo As String AnswerYes = MsgBox ("Kas soovite kopeerida?", VbQuestion + vbYesNo, "User Repsonse") Kui AnswerYes = vbYes Siis Range ("A1: A2"). Kopeeri ("C1") muu vahemik ("A1: A2"). Kopeerimisvahemik ("E1") lõpeb, kui lõpeb alam 

Selgitus:

Eeltoodu on muutuja deklareerinud stringiks st

 Hämar vastus: Jah stringina 

Järgmisel real oleme väärtuse määranud sõnumikasti kaudu, küsides „Kas soovite kopeerida?”.

AnswerYes = MsgBox ("Kas soovite kopeerida?", VbQuestion + vbYesNo, "Kasutaja vastus")

Nüüd hindab IF-lause sõnumikasti kaudu antud vastust. Kui sõnumikasti tulemus on vbYes , kopeerib see vahemiku A1 kuni A2 ja kleebib lahtrisse C1.

   Kui AnswerYes = vbYes, siis vahemik ("A1: A2"). Kopeeri vahemik ("C1")

Kui sõnumikasti vastus on Ei, kopeerib see vahemiku A1 kuni A2 ja kleebib lahtrisse E1.

 Muu vahemik ("A1: A2"). Kopeerimisvahemik ("E1") lõpeb, kui 

Ok, olen nüüd lahtritesse A1 ja A2 sisestanud vähe väärtusi.

Nüüd käivitan koodi kasutades klahvi F5 või läbisõidu võimalust, minu ette ilmub teatekast ja palutakse minu vastust.

Kui klõpsan nupul Jah, kopeerib see vahemiku A1 kuni A2 ja kleebib lahtrisse C1. Nüüd klõpsan Jah ja näen tulemust.

Nii et see on määratud ülesande täitnud, kui vastus on JAH.

Nüüd jällegi käivitan koodi.

Seekord valin Ei ja vaatan, mis juhtub.

Jah, see täitis koodis määratud ülesande, st

 Muu vahemik ("A1: A2"). Kopeerimisvahemik ("E1")

Näide # 2 - vastuste põhjal peida ja peida lehed

Koodi all peidetakse kõik lehed, välja arvatud aktiivne leht, kui vastus on jaatav.

Kood:

 Sub HideAll () Hämar vastus stringina Dim Ws töölehe vastusena = MsgBox ("Kas soovite kõiki peita?", VbQuestion + vbYesNo, "Peida") Kui Answer = vbYes, siis iga W kohta ActiveWorkbookis. Töölehed Kui Ws.Name ActiveSheet.Name Siis Ws.Visible = xlSheetVeryHidden Järgmine Ws ElseIf Answer = vbNo Siis MsgBox "Valisite, et lehti ei peita", vbInformation, "Peida pole" Lõpeta, kui lõpp alam 

Kui sõnumikasti vastus on JAH, peidab ülaltoodud kood kõik töölehed, välja arvatud leht, milles me praegu asume.

Kui sõnumikasti vastus on EI, kuvatakse see sõnumikastiga „Olete valinud lehti mitte peita”.

Samamoodi peidab kood allpool lehe, kui vastus on Jah.

Kood:

 Sub UnHideAll () Hämar vastus stringina Dim Ws töölehe vastusena = MsgBox ("Kas soovite kõik varjata?", VbQuestion + vbYesNo, "Peida") Kui Answer = vbYes, siis iga W kohta ActiveWorkbookis. Töölehed Ws.Visible = xlSheetVeryHidden Järgmine Ws ElseIf Answer = vbNo Siis MsgBox "Olete valinud, et lehte ei peita", vbInformation, "Peida pole" Lõpeta, kui lõpp alam 

See töötab täpselt samamoodi nagu peida lehe kood, kui jah, siis peidetakse, kui ei, siis ei peita.


$config[zx-auto] not found$config[zx-overlay] not found