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 iš naudotojų įvesties reikšmes tam tikrai užduočiai atlikti ir vieną iš tokių užduočių surinkti vartotojų atsakymą Taip arba Ne. Naudodami VBA MsgBox Taip Ne, mes galime parašyti kodą, kad tęstume toliau kodą.

Tam tikromis situacijomis mums gali tekti pateikti „Taip“ arba „Ne“ parinktis prieš vartotoją, kad pateiktume 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?

Galite atsisiųsti šį „VBA“ pranešimų laukelį Taip arba Ne „Excel“ šabloną čia - VBA pranešimų laukelis Taip arba Ne „Excel“ šablonas

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 styginis 

Kitoje eilutėje 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 per vykdymo 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 - paslėpti ir nerodyti lapų, remiantis atsakymu

Žemiau kodas paslėps visus lapus, išskyrus aktyvųjį lapą, jei atsakymas yra 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 = vbNo Tada MsgBox „Pasirinkote neslėpti lapų“, „vbInformation“, „Nerodyti“ Baigti, jei pabaiga Pabaiga 

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, bus rodomas pranešimų laukelis su užrašu „Pasirinkote neslėpti lapų“.

Panašiai žemiau pateiktas kodas parodys lapą, jei atsakymas yra „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 lygiai taip pat, kaip slėpti lapo kodą, jei taip, jis bus rodomas, jei ne, jis nebus rodomas.


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