Excel VBA MsgBox (jā / nē)
Jo VBA , izmantojot ziņojuma lodziņu, mēs varam izveidot jā nē MsgBox , kas tiek izmantots, lai ierakstītu lietotāja ievadi, pamatojoties uz noklikšķiniet uz jā vai nē, sintakse padarīt A Jā Nē ziņojuma lodziņš ir šāds mainīgais = MsgBox ( "teksts", vbQuestion + vbYesNo + vbDefaultButton2, “Message Box Title”), kur mainīgais ir jādeklarē kā vesels skaitlis.
Bieži vien VBA kodēšanā mums ir jāsavāc ievades vērtības no lietotājiem, lai veiktu dažus uzdevumus, un viens no šādiem uzdevumiem, lai savāktu lietotāju atbildi Jā vai Nē. Izmantojot VBA MsgBox Jā Nē metodi, mēs varam ierakstīt kodu, lai turpinātu kodu.
Atsevišķās situācijās mums, iespējams, būs jāiesniedz lietotāja priekšā opcija Jā vai Nē, lai sniegtu atbildi, un, pamatojoties uz šo atbildi. Mēs faktiski varam palaist VBA kodu.
Piemēram, apskatiet zemāk redzamo MsgBox attēlu VBA.

Ja lietotājs saka Jā, “mēs varam rakstīt kodu, lai veiktu noteiktu uzdevumu”, un, ja lietotājs saka “Nē”, mēs varam rakstīt kodu, lai veiktu citu uzdevumu kopu.
Kā strādāt ar MsgBox Jā / Nē atbilde?
1. piemērs - kopēšana un ielīmēšana, pamatojoties uz atbildi
Piemēram, apskatiet zemāk redzamo kodu.
Kods:
Sub MessageBox_Yes_NO_Example1 () Aptumšot AnswerYes kā String Dim AnswerNo As String AnswerYes = MsgBox ("Vai vēlaties kopēt?", VbQuestion + vbYesNo, "Lietotāja atbilde") Ja AnswerYes = vbYes Tad diapazons ("A1: A2"). Kopēt ("C1") cits diapazons ("A1: A2"). Kopēšanas diapazons ("E1") beigas, ja beigas apakšdaļa

Paskaidrojums:
Iepriekš minētie mainīgie ir deklarēti kā String ti
Blāva atbilde Jā, kā virkne
Nākamajā rindiņā vērtību esam piešķīruši, izmantojot ziņojumu lodziņu, kurā tiek jautāts: “Vai vēlaties kopēt?”.
AnswerYes = MsgBox ("Vai vēlaties kopēt?", VbQuestion + vbYesNo, "Lietotāja atbilde")
Tagad IF paziņojums novērtē atbildi, kas sniegta, izmantojot ziņojumu lodziņu. Ja ziņojuma lodziņa rezultāts ir vbJā, tas kopēs diapazonu no A1 līdz A2 un ielīmēs šūnā C1.
Ja AnswerYes = vbYes, tad diapazons ("A1: A2"). Kopēšanas diapazons ("C1")
Ja ziņojuma lodziņā sniegtā atbilde ir Nē, tā kopēs diapazonu no A1 līdz A2 un ielīmēs šūnā E1.
Cits diapazons ("A1: A2"). Kopēšanas diapazons ("E1") beidzas, ja
Labi, tagad šūnās A1 un A2 esmu ievadījis dažas vērtības.

Tagad es palaidīšu kodu, izmantojot taustiņu F5, vai arī izmantojot opciju palaist, man priekšā parādīsies ziņojumu lodziņš, kurā tiek lūgta mana atbilde.

Ja noklikšķināšu uz Jā, tas nokopēs diapazonu no A1 līdz A2 un ielīmēs šūnā C1. Tagad es noklikšķināšu uz Jā un redzēšu rezultātu.

Tātad tas ir veicis piešķirto uzdevumu, ja atbilde ir JĀ.
Tagad es atkal palaidīšu kodu.

Šoreiz es izvēlos Nē un redzēšu, kas notiks.

Jā, tas veica kodā piešķirto uzdevumu, ti
Cits diapazons ("A1: A2"). Kopēšanas diapazons ("E1")
2. piemērs - slēpt un paslēpt lapas, pamatojoties uz atbildi
Zemāk esošajā kodā tiks paslēptas visas lapas, izņemot aktīvo, ja atbilde ir “jā”.
Kods:
Sub HideAll () Blāva atbilde kā virkne Dim Ws kā darblapas atbilde = MsgBox ("Vai vēlaties paslēpt visus?", VbQuestion + vbYesNo, "Slēpt") Ja Atbilde = vbJā, tad katrai W ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Tad Ws.Visible = xlSheetVeryHidden Nākamais Ws ElseIf Answer = vbNo Tad MsgBox "Jūs esat izvēlējies neslēpt lapas", vbInformation, "Nav slēpt" Beigt, ja beigas apakšdaļa
Iepriekš minētais kods paslēps visas darblapas, izņemot lapu, kurā atrodamies šobrīd, ja atbilde no ziņojumu lodziņa ir JĀ.

Ja atbilde no ziņojumu lodziņa ir NĒ, tā parādīs ziņojumu lodziņu ar tekstu: “Jūs esat izvēlējies neslēpt lapas.”

Tāpat zemāk redzamais kods parādīs lapu, ja atbilde ir Jā.
Kods:
Sub UnHideAll () Blāva atbilde kā virkne Dim Ws kā darblapas atbilde = MsgBox ("Vai vēlaties visus paslēpt?", VbQuestion + vbYesNo, "Slēpt") Ja Answer = vbYes, tad katram WS vietnē ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Tad MsgBox "Jūs esat izvēlējies nerādīt slēptās lapas", vbInformation, "Nav slēpt" Beigt, ja beigas apakšdaļa
Tas darbojas tieši tāpat kā paslēpt lapas kodu; ja jā, tas tiks paslēpts. Ja nē, tas netiks parādīts.