VBA MsgBox Ja / Nej - Hvordan oprettes ja / nej-svar?

Indholdsfortegnelse

Excel VBA MsgBox (Ja / Nej)

I VBA , ved hjælp af meddelelsesfeltet, kan vi oprette en ja nej-meddelelsesboks, der bruges til at registrere brugerindgang baseret på klik på ja eller nej, syntaksen for at oprette et ja nej-meddelelsesfelt er som følger variabel = MsgBox (“Tekst”, vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title"), hvor variablen skal erklæres som et heltal.

Ofte ved VBA-kodning er vi nødt til at indsamle inputværdierne fra brugerne for at udføre nogle opgaver, og en af ​​sådanne opgaver for at indsamle Ja eller Nej-svaret fra brugerne. Ved at bruge VBA MsgBox Yes No-metoden kan vi skrive koden for at gå videre i koden.

I visse situationer er vi muligvis nødt til at præsentere en Ja eller Nej-mulighed foran brugeren for at give deres svar og baseret på dette svar. Vi kan faktisk køre VBA-koden.

Se f.eks. Nedenstående billede af MsgBox i VBA.

Hvis brugeren siger Ja, "kan vi skrive kode for at udføre en bestemt opgave", og hvis brugeren siger "Nej", kan vi skrive kode for at udføre et andet sæt opgaver.

Sådan arbejder du med MsgBox Ja / Nej-svar?

Eksempel # 1 - Kopier og indsæt baseret på svar

Se f.eks. Nedenstående kode.

Kode:

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") Ellers rækkevidde ("A1: A2"). Kopieringsområde ("E1") Slut hvis slut sub

Forklaring:

Ovenstående har erklæret variablen som streng, dvs.

Svagt svar Ja som streng

I den næste linje har vi tildelt værdien gennem en meddelelsesboks, der spørger: "Vil du kopiere?".

AnswerYes = MsgBox ("Ønsker du at kopiere?", VbQuestion + vbYesNo, "User Repsonse")

Nu evaluerer IF-sætning svaret, der gives gennem meddelelsesboksen. Hvis meddelelsesfeltets resultat er vbJa , kopieres området A1 til A2 og indsættes i celle C1.

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

Hvis svaret i meddelelsesfeltet er Nej, vil det kopiere området A1 til A2 og indsætte i celle E1.

Else Range ("A1: A2"). Copy Range ("E1") Slut Hvis

Ok, jeg har nu indtastet få værdier i celle A1 og A2 nu.

Nu kører jeg koden ved hjælp af F5-tasten, eller gennem kørselsindstillingen vises en meddelelsesboks foran mig og beder om mit svar.

Hvis jeg klikker på Ja, kopieres området A1 til A2 og indsættes i C1-celle. Nu skal jeg klikke på Ja og se resultatet.

Så det har udført den tildelte opgave, hvis svaret er JA.

Nu igen kører jeg koden.

Denne gang vælger jeg Nej og ser hvad der sker.

Ja, det udførte den opgave, der er tildelt i koden, dvs.

Else Range ("A1: A2"). Copy Range ("E1")

Eksempel # 2 - Skjul og skjul ark baseret på svaret

Nedenstående kode skjuler alle arkene undtagen det aktive ark, hvis svaret er ja.

Kode:

Sub HideAll () Dæmp svar som streng Dim Ws som regneark Svar = MsgBox ("Ønsker du at skjule alle?", VbQuestion + vbYesNej, "Hide") Hvis Answer = vbYes Så for hver Ws i ActiveWorkbook.Worksheets Hvis Ws.Name ActiveSheet.Name Derefter Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Så MsgBox "Du har valgt ikke at skjule arkene", vbInformation, "No Hide" End If End Sub

Ovenstående kode skjuler alle regnearkene undtagen det ark, vi er i lige nu, hvis svaret fra meddelelsesfeltet er JA.

Hvis svaret fra meddelelsesfeltet er NEJ, vises meddelelsesfeltet, der siger "Du har valgt ikke at skjule arkene."

På samme måde viser nedenstående kode arket, hvis svaret er ja.

Kode:

Sub UnHideAll () Dæmp svar som streng Dim Ws som regneark Svar = MsgBox ("Ønsker du at skjule alle?", VbQuestion + vbYesNej, "Hide") Hvis Answer = vbYes Så for hvert Ws i ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Derefter MsgBox "Du har valgt ikke at skjule arkene", vbInformation, "No Hide" Afslut hvis slut sub

Dette fungerer nøjagtigt det samme som kode for skjulark; hvis ja, vil det blive skjult. Hvis nej, viser det sig ikke.

Interessante artikler...