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 joidenkin tehtävien suorittamiseksi ja yksi tällaisista tehtävistä 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 vastauksen antamiseksi. Voimme todella 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?

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 sanomaruudun 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 suoritusvaihtoehdon kautta, 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

Alla oleva koodi piilottaa kaikki taulukot paitsi aktiivisen arkin, jos vastaus on kyllä.

Koodi:

Sub HideAll () himmeä 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 sanomalla: "Olet valinnut piilottavan taulukoita."

Vastaavasti alla oleva koodi piilottaa 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, ettet halua piilottaa taulukoita", vbInformation, "Ei piilota" End If End Sub

Tämä toimii täsmälleen samalla tavalla kuin piilotaulukon koodi; jos kyllä, se näkyy. Jos ei, se ei näy.

Mielenkiintoisia artikkeleita...