VBA MsgBox Igen / Nem - Hogyan készítsünk igen / nem választ?

Excel VBA MsgBox (Igen / Nem)

A VBA- ban az üzenetdoboz használatával létrehozhatunk egy igen nem msgbox-ot, amelyet a felhasználói bevitel rögzítésére használnak az igen vagy a nem gombra kattintás alapján. Az igen nem üzenet mező szintaxisa a következő változó = MsgBox („Szöveg”, vbQuestion + vbYesNo + vbDefaultButton2, „Üzenetdoboz címe”), ahol a változót egész számként kell deklarálni.

Gyakran a VBA kódolás során be kell gyűjtenünk a felhasználóktól a bemeneti értékeket bizonyos feladatok elvégzéséhez, és az egyik ilyen feladat a felhasználók igen vagy nem válaszainak összegyűjtése. A VBA MsgBox Igen Nem módszer használatával beírhatjuk a kódot a továbbhaladáshoz.

Bizonyos helyzetekben előfordulhat, hogy a válasz megadásához egy Igen vagy Nem opciót kell bemutatnunk a felhasználó előtt, és erre a válaszra alapozva. Futtathatjuk a VBA kódot.

Nézze meg például az MsgBox alábbi képét a VBA-ban.

Ha a felhasználó azt mondja, hogy Igen, „írhatunk kódot egy adott feladat végrehajtására”, és ha a felhasználó azt mondja: „Nem”, akkor írhatunk kódot egy másik feladatsor végrehajtására.

Hogyan működik az MsgBox Igen / Nem válasz?

1. példa - Másolás és beillesztés a válasz alapján

Nézze meg például az alábbi kódot.

Kód:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes stringként Dim AnswerNo As String AnswerYes = MsgBox ("Szeretne másolni?", VbQuestion + vbYesNo, "User Repsonse") Ha AnswerYes = vbYes Ezután Range ("A1: A2"). Másolás ("C1") Egyéb tartomány ("A1: A2"). Másolási tartomány ("E1") Vége, ha Vége Al

Magyarázat:

A fentiek a változót String ie néven deklarálták

Homályos válasz Igen, mint karakterlánc

A következő sorban hozzárendeltük az értéket egy üzenetmezőhöz, amelyben azt kérdeztük: „Szeretne másolni?”.

AnswerYes = MsgBox ("Szeretne másolni?", VbQuestion + vbYesNo, "Felhasználói válasz")

Most az IF utasítás értékeli az üzenetmezőn keresztül adott választ. Ha az üzenetmező eredménye vbYes, akkor átmásolja az A1 és A2 tartományokat, és beilleszti a C1 cellába.

 Ha AnswerYes = vbYes, akkor Tartomány ("A1: A2"). Másolási tartomány ("C1")

Ha az üzenetmező válasza nem, akkor az átmásolja az A1 és A2 tartományokat, és beilleszti az E1 cellába.

Más tartomány ("A1: A2"). Másolási tartomány ("E1") Vége, ha

Ok, most kevés értéket adtam meg az A1 és az A2 cellában.

Most futtatom a kódot az F5 billentyűvel, vagy a futtatás opcióval, egy üzenetmező jelenik meg előttem, és megkéri a válaszomat.

Ha az Igen gombra kattintok, akkor átmásolja az A1 és A2 tartományokat, és beilleszti a C1 cellába. Most rákattintok az Igen gombra, és megnézem az eredményt.

Tehát elvégezte a kijelölt feladatot, ha a válasz IGEN.

Most ismét futtatom a kódot.

Ezúttal a Nem lehetőséget választom, és megnézem, mi történik.

Igen, elvégezte a kódban kijelölt feladatot, azaz

Más tartomány ("A1: A2"). Másolási tartomány ("E1")

2. példa - Táblázatok elrejtése és elrejtése a válasz alapján

The below code will hide all the sheets except the active sheet if the response is yes.

Code:

Sub HideAll() Dim Answer As String Dim Ws As Worksheet Answer = MsgBox("Do you Wish to Hide All?", vbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "You have selected not to hide the sheets", vbInformation, "No Hide" End If End Sub

The above code will hide all the worksheets except the sheet we are in right now if the response from the message box is YES.

If the response from the message box is NO, it will display the message box saying, “You have selected not to hide the sheets.”

Similarly, the below code will unhide the sheet if the response is Yes.

Code:

Sub UnHideAll () Dim Válasz karakterláncként Dim Ws mint munkalap Válasz = MsgBox ("Szeretné mindet elrejteni?", VbQuestion + vbYesNo, "Hide") Ha Answer = vbYes, akkor minden W-re az ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Következő Ws ElseIf Answer = vbNo Akkor MsgBox "Kiválasztotta, hogy ne jelenítse meg a munkalapokat", vbInformation, "Nincs elrejtés" Vége, ha End Sub

Ez pontosan ugyanúgy működik, mint az elrejtő lap kódja; ha igen, akkor elrejti. Ha nem, akkor nem jelenik meg.

érdekes cikkek...