VBA MsgBox Kyllä / Ei | Kuinka luoda kyllä ​​/ ei vastausta?

Excel VBA MsgBox (Kyllä / Ei)

Vuonna VBA käyttämällä sanomaruutu voimme luoda kyllä ei MsgBox jota käytetään tallentamaan käyttäjän syötettä perustuu klikkaa kyllä tai ei, syntaksin tehdä kyllä ei sanomaruudun on seuraava muuttuja = MsgBox ( ”Teksti”, vbQuestion + vbYesNo + vbDefaultButton2, “Message Box Title”), jossa muuttuja on ilmoitettava kokonaislukuna.

Usein VBA-koodauksessa meidän on kerättävä käyttäjiltä tuloarvot jonkin tehtävän suorittamiseksi ja yksi tällainen tehtävä keräämään käyttäjien kyllä- tai ei-vastaus. Käyttämällä VBA MsgBox Kyllä Ei -menetelmää voimme kirjoittaa koodin jatkaaksesi koodissa.

Tietyissä tilanteissa joudumme ehkä esittämään käyttäjän edessä Kyllä tai Ei vaihtoehdon antamaan vastauksensa ja vastauksen perusteella voimme tosiasiallisesti suorittaa VBA-koodin.

Katso esimerkiksi alla oleva kuva MsgBoxista VBA: ssa.

Jos käyttäjä sanoo kyllä, "voimme kirjoittaa koodin tietyn tehtävän suorittamiseksi" ja jos käyttäjä sanoo "ei", voimme kirjoittaa koodin toisen tehtäväsarjan suorittamiseksi.

Kuinka työskennellä MsgBoxin kanssa Kyllä / Ei vastausta?

Voit ladata tämän VBA-viestiruudun Kyllä tai Ei Excel-malli täältä - VBA-viestiruutu Kyllä tai Ei Excel-malli

Esimerkki # 1 - Kopioi ja liitä vastauksen perusteella

Katso esimerkiksi alla oleva koodi.

Koodi:

 Sub MessageBox_Yes_NO_Example1 () Himmennä AnswerYes merkkijonona Dim AnswerNo Kuten String AnswerYes = MsgBox ("Haluatko kopioida?", VbQuestion + vbYesNo, "User Repsonse") Jos AnswerYes = vbYes sitten Range ("A1: A2"). ("C1") muu alue ("A1: A2"). Kopiointialue ("E1") loppu, jos loppu 

Selitys:

Edellä on ilmoitettu muuttuja merkkijonoksi

 Hämärä vastaus: Kyllä merkkijonona 

Seuraavalla rivillä olemme osoittaneet arvon viestiruudun kautta, jossa kysytään "Haluatko kopioida?".

AnswerYes = MsgBox ("Haluatko kopioida?", VbQuestion + vbYesNo, "Käyttäjän vastaus")

Nyt IF-lause arvioi viestiruudun kautta annetun vastauksen. Jos viestiruudun tulos on vbYes, se kopioi alueen A1 - A2 ja liittää soluun C1.

   Jos AnswerYes = vbYes sitten Range ("A1: A2"). Copy Range ("C1")

Jos viestiruudun antama vastaus on Ei, se kopioi alueen A1 - A2 ja liittää soluun E1.

 Muu alue ("A1: A2"). Kopiointialue ("E1") Lopeta, jos 

Ok, olen syöttänyt muutaman arvon soluihin A1 ja A2 nyt.

Suoritan nyt koodin F5-näppäimellä tai suoritusvaihtoehdolla, edessäni ilmestyy viesti-ruutu, joka pyytää vastausta.

Jos napsautan Kyllä, se kopioi alueen A1 - A2 ja liittää C1-soluun. Napsautan nyt Kyllä ja näen tuloksen.

Joten se on suorittanut määritetyn tehtävän, jos vastaus on KYLLÄ.

Nyt suoritan koodin uudelleen.

Tällä kertaa valitsen Ei ja näen mitä tapahtuu.

Kyllä, se suoritti koodissa määritetyn tehtävän eli

 Muu alue ("A1: A2"). Kopiointialue ("E1")

Esimerkki # 2 - Piilota ja piilota taulukot vastauksen perusteella

Koodin alle piilotetaan kaikki taulukot paitsi aktiivinen taulukko, jos vastaus on kyllä.

Koodi:

 Sub HideAll () Hämärä vastaus merkkijonona Dim Ws kuten laskentataulukon vastaus = MsgBox ("Haluatko piilottaa kaikki?", VbQuestion + vbYesNo, "Piilota") Jos Answer = vbYes sitten jokaiselle W: lle ActiveWorkbook.Worksheets Jos Ws.Name ActiveSheet.Name Sitten Ws.Visible = xlSheetVeryHidden Seuraava Ws ElseIf Answer = vbNo Sitten MsgBox "Olet valinnut piilottamatta taulukoita", vbInformation, "Ei piilota" Lopeta, jos loppu ali 

Yllä oleva koodi piilottaa kaikki laskentataulukot paitsi arkki, jossa olemme juuri nyt, jos vastaus viestiruudusta on KYLLÄ.

Jos viestiruudun vastaus on EI, se näyttää viestiruudun, jossa lukee "Olet valinnut piilottamaan taulukoita".

Vastaavasti alla oleva koodi näyttää taulukon, jos vastaus on Kyllä.

Koodi:

 Sub UnHideAll () Himmennä vastaus merkkijonona Dim Ws kuten laskentataulukon vastaus = MsgBox ("Haluatko piilottaa kaikki?", VbQuestion + vbYesNo, "Piilota") Jos Answer = vbYes sitten jokaiselle W: lle ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Seuraava Ws ElseIf Answer = vbNo Sitten MsgBox "Olet valinnut, ettei piilota taulukoita", vbInformation, "Ei piilota" Lopeta, jos loppu ali 

Tämä toimii täsmälleen samalla tavalla kuin piilotaulukon koodi, jos kyllä, se näyttää, jos ei, se ei näytä.


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