VBA MsgBox (Ja / Nej)

Excel VBA MsgBox (Ja / Nej)

I VBA , med hjälp av meddelandefältet, kan vi skapa ett ja-nej-meddelandefält som används för att spela in användarinmatning baserat på klicket på ja eller nej, syntaxen för att göra ett ja-nej-meddelandefält är följande variabel = MsgBox (“Text”, vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title") där variabeln måste deklareras som ett heltal.

Ofta i VBA-kodning måste vi samla inmatningsvärdena från användarna för att utföra någon uppgift och en av dessa uppgifter för att samla in svaret Ja eller Nej från användare. Genom att använda VBA MsgBox Yes No-metod kan vi skriva koden för att gå vidare i koden.

I vissa situationer kan vi behöva presentera Ja eller Nej-alternativet framför användaren för att ge sitt svar och baserat på det svaret kan vi faktiskt köra VBA-koden.

Titta till exempel på bilden nedan av MsgBox i VBA.

Om användaren säger Ja "kan vi skriva kod för att utföra en specifik uppgift" och om användaren säger "Nej" kan vi skriva kod för att utföra en annan uppsättning uppgifter.

Hur arbetar jag med MsgBox Ja / Nej-svar?

Du kan ladda ner den här VBA-meddelanderutan Ja eller Nej Excel-mall här - VBA-meddelanderuta Ja eller Nej Excel-mall

Exempel nr 1 - Kopiera och klistra in baserat på svar

Titta till exempel på koden nedan.

Koda:

 Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Do You Wish to Copy?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes Then Range ("A1: A2"). ("C1") Annat intervall ("A1: A2"). Kopieringsområde ("E1") Avsluta om slut Sub 

Förklaring:

Ovanstående har förklarat variabeln som String dvs.

 Svagt svar Ja som sträng 

I nästa rad har vi tilldelat värdet genom meddelandefältet som frågar "Vill du kopiera?".

AnswerYes = MsgBox ("Vill du kopiera?", VbQuestion + vbYesNo, "User Repsonse")

Nu utvärderar IF-uttalandet svaret som ges via meddelandefältet. Om resultatet av meddelandefältet är vbYes kommer det att kopiera intervallet A1 till A2 och klistra in i cell C1.

   Om AnswerYes = vbYes Then Range ("A1: A2"). Copy Range ("C1")

Om svaret från meddelandefältet är Nej kommer det att kopiera intervallet A1 till A2 och klistra in i cell E1.

 Annat intervall ("A1: A2"). Kopieringsområde ("E1") Avsluta om 

Ok, jag har angett några värden i cell A1 och A2 nu.

Nu kommer jag att köra koden med F5-tangenten eller genom att köra alternativet, en meddelandefält kommer att visas framför mig och ber om mitt svar.

Om jag klickar på Ja, kommer det att kopiera intervallet A1 till A2 och klistra in i C1-cellen. Nu klickar jag på Ja och ser resultatet.

Så det har utfört den tilldelade uppgiften om svaret är JA.

Nu igen kommer jag att köra koden.

Den här gången väljer jag Nej och ser vad som händer.

Ja det utförde uppgiften som tilldelats i koden, dvs.

 Annat intervall ("A1: A2"). Kopieringsområde ("E1")

Exempel # 2 - Dölj och dölj ark baserat på svaret

Nedanstående kod döljer alla ark utom det aktiva arket om svaret är ja.

Koda:

 Sub HideAll () Dim Answer as String Dim Ws As Worksheet Answer = MsgBox ("Vill du dölja alla?", VbQuestion + vbYesNee, "Hide") Om Answer = vbYes Då för varje Ws i ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Då Ws.Visible = xlSheetVeryHidden Nästa Ws ElseIf Answer = vbNo Då MsgBox "Du har valt att inte dölja arken", vbInformation, "No Hide" Avsluta om End Sub 

Ovanstående kod döljer alla kalkylblad utom det ark vi befinner oss i just nu om svaret från meddelandefältet är JA.

Om svaret från meddelandefältet är NEJ, kommer meddelandefältet att säga "Du har valt att inte dölja arken" visas .

På samma sätt visar nedanstående kod arket om svaret är ja.

Koda:

 Sub UnHideAll () Dim Answer as String Dim Ws As Worksheet Answer = MsgBox ("Do You Wish to Unhide All?", VbQuestion + vbYesNee, "Hide") If Answer = vbYes Then for each Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Nästa Ws ElseIf Answer = vbNo Då MsgBox "Du har valt att inte dölja bladen", vbInformation, "No Hide" Avsluta om End Sub 

Detta fungerar exakt på samma sätt som koden för döljark, om ja kommer den att visas, om nej kommer den inte att visas.