VBA „MsgBox“ Taip / Ne - Kaip sukurti taip / ne atsakymą?

„Excel VBA MsgBox“ (taip / ne)

Be VBA , naudojant dėžutę, mes galime sukurti Taip Ne MsgBox kuris naudojamas įrašyti naudotojo įvesties remiantis spustelėkite Taip arba Ne, sintaksė padaryti Taip Ne pranešimo langas yra toks kintamasis = MsgBox ( "Tekstas", vbQuestion + vbYesNo + vbDefaultButton2, „Message Box Title“), kur kintamasis turi būti deklaruojamas kaip sveikasis skaičius.

Dažnai VBA koduodami turime surinkti įvesties vertes iš vartotojų, kad atliktume kai kurias užduotis, ir vieną iš tokių užduočių, kad surinktume vartotojų atsakymą „Taip“ arba „Ne“. Naudodami VBA „MsgBox“ Taip Ne metodą, mes galime parašyti kodą, kad tęstumėte toliau kodą.

Tam tikromis situacijomis mums gali tekti pateikti „Taip“ arba „Ne“ parinktis prieš vartotoją, kad galėtume pateikti savo atsakymą ir remdamiesi tuo atsakymu. Mes iš tikrųjų galime paleisti VBA kodą.

Pavyzdžiui, pažiūrėkite į žemiau esantį „VBA“ „MsgBox“ vaizdą.

Jei vartotojas sako „Taip“, „mes galime parašyti kodą tam tikrai užduočiai atlikti“, o jei vartotojas sako „Ne“, mes galime parašyti kodą kitam užduočių rinkiniui atlikti.

Kaip dirbti su „MsgBox“ Taip / Ne Atsakymas?

1 pavyzdys - kopijuoti ir įklijuoti remiantis atsakymu

Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

Sub MessageBox_Yes_NO_Example1 () Blankus atsakymasTaip kaip eilutė Blankus atsakymasNe Kaip eilutė AnswerYes = MsgBox ("Ar norite kopijuoti?", VbQuestion + vbYesNo, "Vartotojo atsakymas") Jei AnswerYes = vbYes Tada diapazonas ("A1: A2"). Kopijuoti diapazoną („C1“) Kitas diapazonas („A1: A2“). Kopijavimo diapazonas („E1“) Pabaiga, jei Pabaiga Sub

Paaiškinimas:

Pirmiau kintamasis buvo paskelbtas eilute, ty

Blankus atsakymasTaip kaip eilutė

Kitoje eilutėje mes priskyrėme vertę per pranešimų laukelį, kuriame klausiama: „Ar norite kopijuoti?“.

AnswerYes = MsgBox („Ar norite kopijuoti?“, „VbQuestion“ + „vbYesNo“, „Vartotojo atsakymas“)

Dabar IF teiginys įvertina atsakymą, pateiktą per pranešimų laukelį. Jei pranešimo laukelio rezultatas yra „ vbYes“, jis nukopijuos diapazoną nuo A1 iki A2 ir įklijuos į langelį C1.

 Jei AnswerYes = vbYes Tada diapazonas ("A1: A2"). Kopijuoti diapazoną ("C1")

Jei pranešimo laukelio atsakymas yra Ne, jis nukopijuos diapazoną nuo A1 iki A2 ir įklijuos į langelį E1.

Kitas diapazonas ("A1: A2"). Kopijavimo diapazonas ("E1") Pabaiga, jei

Gerai, dabar langeliuose A1 ir A2 įvedžiau keletą reikšmių.

Dabar aš paleisiu kodą naudodamas F5 klavišą arba naudodamas paleidimo parinktį, priešais mane pasirodys pranešimo laukelis ir paprašys mano atsakymo.

Jei spustelėsiu Taip, jis nukopijuos diapazoną nuo A1 iki A2 ir įklijuos į C1 langelį. Dabar spustelėsiu Taip ir pamatysiu rezultatą.

Taigi ji atliko užduotį, jei atsakymas buvo TAIP.

Dabar vėl vykdysiu kodą.

Šį kartą pasirenku Ne ir pažiūrėsiu, kas bus.

Taip, ji atliko kode priskirtą užduotį, t

Kitas diapazonas („A1: A2“). Kopijavimo diapazonas („E1“)

2 pavyzdys - slėpti ir nerodyti lapų, remiantis atsakymu

Žemiau pateiktas kodas paslėps visus lapus, išskyrus aktyvųjį, jei atsakymas bus teigiamas.

Kodas:

Sub HideAll () Blankus atsakymas kaip eilutė Dim Ws kaip darbalapio atsakymas = MsgBox ("Ar norite visus paslėpti?", VbQuestion + vbYesNo, "Slėpti") Jei Atsakymas = vbYes, tada kiekvienam Ws "ActiveWorkbook.Worksheets", jei Ws.Name „ActiveSheet.Name“ tada Ws.Visible = xlSheetVeryHidden Kitas Ws ElseIf Answer = vbNe Tada MsgBox „Pasirinkote neslėpti lapų“, „vbInformation“, „Nerodyti“ Baigti, jei baigsis antrinis

Aukščiau pateiktas kodas paslėps visus darbalapius, išskyrus lapą, kuriame dabar esame, jei atsakymas iš pranešimo laukelio yra TAIP.

Jei atsakymas iš pranešimų laukelio yra NE, jis parodys pranešimų laukelį, kuriame sakoma: „Pasirinkote lapų neslėpti“.

Panašiai žemiau pateiktas kodas paslėps lapą, jei atsakymas bus „Taip“.

Kodas:

Sub UnHideAll () Blankus atsakymas kaip eilutė Dim Ws kaip darbalapio atsakymas = MsgBox ("Ar norite visus neslėpti?", VbQuestion + vbYesNo, "Slėpti") Jei Atsakymas = vbYes, tada kiekvienam W "ActiveWorkbook.Worksheets Ws.Visible =" xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Tada MsgBox "Pasirinkote neatskleisti lapų", vbInformation, "Nerodyti" Pabaiga, jei pabaiga Pabaiga

Tai veikia taip pat, kaip paslėpti lapo kodą; jei taip, tai paslėps. Jei ne, tai nepaslėps.

Įdomios straipsniai...