VBA MsgBox Ja / Nei - Hvordan lage ja / nei-svar?

Innholdsfortegnelse

Excel VBA MsgBox (Ja / Nei)

I VBA , ved hjelp av meldingsboksen, kan vi opprette en ja nei-meldingsboks som brukes til å registrere brukerinngang basert på klikket på ja eller nei, syntaksen for å lage en ja nei-meldingsboks er som følger variabel = MsgBox (“Tekst” vbQuestion + vbYesNo + vbDefaultButton2, “Message Box Title”) der variabel må deklareres som et helt tall.

Ofte i VBA-koding, må vi samle inndataverdiene fra brukerne for å utføre noen oppgaver, og en av slike oppgaver for å samle inn svaret Ja eller Nei fra brukere. Ved å bruke VBA MsgBox Yes No-metoden, kan vi skrive koden for å gå videre i koden.

I visse situasjoner kan det hende vi må presentere et Ja- eller Nei-alternativ foran brukeren for å gi svaret, og basert på svaret. Vi kan faktisk kjøre VBA-koden.

Se for eksempel bildet under av MsgBox i VBA.

Hvis brukeren sier Ja, "kan vi skrive kode for å utføre en bestemt oppgave," og hvis brukeren sier "Nei", kan vi skrive kode for å utføre et annet sett med oppgaver.

Hvordan jobbe med MsgBox Ja / Nei-svar?

Eksempel nr. 1 - Kopier og lim inn basert på svar

Se for eksempel på koden nedenfor.

Kode:

UndermeldingBoks_Ja_NO_eksempel1 () Dim svarJa som streng Dim svarNei som streng svarJa = MsgBox ("Ønsker du å kopiere?", VbQuestion + vbYesNo, "User Repsonse") Hvis AnswerYes = vbJa, deretter rekkevidde ("A1: A2"). ("C1") Else Range ("A1: A2"). Copy Range ("E1") End If End Sub

Forklaring:

Ovennevnte har erklært variabelen som streng dvs.

Dimmt svar Ja som streng

I neste linje har vi tilordnet verdien gjennom en meldingsboks som spør: "Ønsker du å kopiere?".

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

Nå evaluerer IF-setningen svaret gitt gjennom meldingsboksen. Hvis meldingsboksresultatet er vbYes, vil det kopiere området A1 til A2 og lime inn i celle C1.

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

Hvis svaret gitt av meldingsboksen er Nei, vil det kopiere området A1 til A2 og lime inn i celle E1.

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

Ok, jeg har skrevet inn få verdier i celle A1 og A2 nå.

Nå vil jeg kjøre koden ved hjelp av F5-tasten, eller gjennom alternativet Kjør, vises en meldingsboks foran meg og ber om mitt svar.

Hvis jeg klikker på Ja, vil det kopiere området A1 til A2 og lime inn i C1-cellen. Nå vil jeg klikke på Ja og se resultatet.

Så den har utført den tildelte oppgaven hvis svaret er JA.

Nå skal jeg kjøre koden.

Denne gangen velger jeg Nei og ser hva som skjer.

Ja, den utførte oppgaven som er tildelt i koden, dvs.

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

Eksempel 2 - Skjul og skjul ark basert på svaret

Koden nedenfor vil skjule alle arkene bortsett fra det aktive arket hvis svaret er ja.

Kode:

Sub HideAll () Dimm svar som streng Dim Ws som regneark Svar = MsgBox ("Ønsker du å skjule alle?", VbQuestion + vbYesNei, "Hide") Hvis svar = vbYes da for hvert Ws i ActiveWorkbook.Worksheets Hvis Ws.Name ActiveSheet.Name Så Ws.Visible = xlSheetVeryHidden Neste Ws ElseIf Answer = vbNo Så MsgBox "Du har valgt å ikke skjule arkene", vbInformation, "No Hide" End If End Sub

Ovennevnte kode vil skjule alle regnearkene bortsett fra arket vi er i akkurat nå hvis svaret fra meldingsboksen er JA.

Hvis svaret fra meldingsboksen er NEI, vil det vise meldingsboksen som sier: "Du har valgt å ikke skjule arkene."

På samme måte vil koden nedenfor vise arket hvis svaret er ja.

Kode:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Ønsker du å skjule alt?", VbQuestion + vbYesNo, "Hide") Hvis Answer = vbYes Så for hvert Ws i ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Neste Ws ElseIf Answer = vbNo Da MsgBox "Du har valgt å ikke skjule arkene", vbInformation, "No Hide" End If End Sub

Dette fungerer nøyaktig det samme som skjularkoden; Hvis ja, vil det skjule seg. Hvis ikke, vil det ikke skjule seg.

Interessante artikler...