VBA MsgBox Da / Ne - Kako ustvariti odgovor da / ne?

Excel VBA MsgBox (Da / Ne)

V VBA lahko s sporočilnim poljem ustvarimo sporočilo da ne, ki se uporablja za snemanje uporabniških vnosov na podlagi klika na da ali ne, sintaksa sporočila z da ne pa je sledeča vbQuestion + vbYesNo + vbDefaultButton2, “Naslov okna za sporočila”), kjer je treba spremenljivko prijaviti kot celo število.

Pogosto pri kodiranju VBA moramo od uporabnikov zbrati vhodne vrednosti za izvajanje nekaterih nalog in eno od takih nalog, da uporabnike zberemo odgovor Da ali Ne. Z uporabo metode VBA MsgBox Yes No lahko kodo napišemo za nadaljevanje v kodo.

V določenih situacijah bomo morda morali pred uporabnikom na podlagi tega odgovora predstaviti možnost Da ali Ne. Kodo VBA lahko dejansko zaženemo.

Na primer, poglejte spodnjo sliko MsgBox-a v VBA.

Če uporabnik reče Da, »lahko napišemo kodo za izvajanje določene naloge«, in če uporabnik reče »Ne«, lahko napišemo kodo za izvedbo drugega sklopa nalog.

Kako delati z MsgBox Da / Ne Odziv?

Primer # 1 - Kopiraj in prilepi na podlagi odziva

Na primer, poglejte spodnjo kodo.

Koda:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Ali želite kopirati?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes then Range ("A1: A2"). ("C1") Else Range ("A1: A2"). Kopiraj obseg ("E1") End If End Sub

Pojasnilo:

Zgoraj je spremenljivko razglasil kot String, tj

Zatemni odgovor Da kot niz

V naslednji vrstici smo vrednost dodelili s sporočilom z vprašanjem »Ali želite kopirati?«.

AnswerYes = MsgBox ("Ali želite kopirati?", VbQuestion + vbYesNo, "User Repsonse")

Zdaj stavek IF oceni odziv, ki ste ga podali skozi polje za sporočila. Če je rezultat v polju za sporočilo vbYes , bo kopiral obseg A1 v A2 in prilepil v celico C1.

 Če je odgovorDa = vbDa, potem obseg ("A1: A2"). Kopiraj obseg ("C1")

Če je odgovor v polju za sporočilo Ne, bo kopiral obseg A1 do A2 in prilepil v celico E1.

Drugi obseg ("A1: A2"). Kopiraj obseg ("E1") Konec, če

Ok, zdaj sem v celice A1 in A2 vnesel nekaj vrednosti.

Zdaj bom zagnal kodo s tipko F5 ali pa se prek možnosti zagon pred mano prikaže okno s sporočilom in zahteva moj odgovor.

Če kliknem na Yes, bo obseg A1 kopiral v A2 in prilepil v celico C1. Zdaj bom kliknil Da in si ogledal rezultat.

Torej je opravil dodeljeno nalogo, če je odgovor DA.

Zdaj bom spet zagnal kodo.

Tokrat bom izbral Ne in pogledal, kaj se bo zgodilo.

Da, opravil je nalogo, določeno v kodi, tj

Drugi obseg ("A1: A2"). Obseg kopiranja ("E1")

2. primer - Skrij in razkrij liste na podlagi odziva

Spodnja koda bo skrila vse liste, razen aktivnega, če je odgovor da.

Koda:

Sub HideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Ali želite skriti vse?", VbQuestion + vbYesNo, "Hide") Če je odgovor = vbYes, potem za vsakega Ws v ActiveWorkbook.Worksheets Če Ws.Name ActiveSheet.Name Potem Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Potem MsgBox "Izbrali ste, da ne želite skriti listov", vbInformation, "No Hide" End If End Sub

Zgornja koda bo skrila vse delovne liste, razen lista, v katerem smo trenutno, če je odgovor iz okna za sporočilo DA.

Če je odgovor iz okna za sporočilo NE, se prikaže okno s sporočilom: "Izbrali ste, da ne želite skriti listov."

Podobno bo spodnja koda razkrila list, če je odgovor Da.

Koda:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Ali želite razkriti vse?", VbQuestion + vbYesNo, "Hide") Če je odgovor = vbYes, potem za vsakega Ws v ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Potem MsgBox "Izbrali ste, da ne želite razkriti listov", vbInformation, "No Hide" End If End Sub

To deluje popolnoma enako kot koda skrivnega lista; če je odgovor da, se bo razkril. Če ne, se ne bo razkril.

Zanimive Članki...