VBA MsgBox Da / Nu - Cum se creează un răspuns Da / Nu?

Excel VBA MsgBox (Da / Nu)

În VBA , folosind caseta de mesaje putem crea o casetă de da nu, care este utilizată pentru a înregistra datele introduse de utilizator pe baza clicului pe da sau nu, sintaxa pentru a face o casetă de da nu este următoarea variabilă = MsgBox („Text”, vbQuestion + vbYesNo + vbDefaultButton2, „Title Box Message”) unde variabila trebuie declarată ca un număr întreg.

Adesea în codificarea VBA, trebuie să colectăm valorile de intrare de la utilizatori pentru a efectua unele sarcini și una dintre astfel de sarcini pentru a colecta răspunsul Da sau Nu de la utilizatori. Folosind metoda VBA MsgBox Da Nu, putem scrie codul pentru a continua mai departe în cod.

În anumite situații, este posibil să trebuiască să prezentăm o opțiune Da sau Nu în fața utilizatorului pentru a-și da răspunsul și pe baza acestui răspuns. De fapt, putem rula codul VBA.

De exemplu, uitați-vă la imaginea de mai jos a MsgBox în VBA.

Dacă utilizatorul spune Da, „putem scrie cod pentru a efectua o anumită sarcină”, iar dacă utilizatorul spune „Nu”, putem scrie cod pentru a efectua un alt set de sarcini.

Cum se lucrează cu MsgBox Da / Nu Răspuns?

Exemplul # 1 - Copiați și lipiți pe baza răspunsului

De exemplu, uitați-vă la codul de mai jos.

Cod:

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”) Alt domeniu („A1: A2”). Copiați intervalul („E1”) Terminați dacă se termină Sub

Explicaţie:

Cele de mai sus au declarat variabila ca String ie

Răspuns Dim Da ca șir

În rândul următor, am atribuit valoarea printr-o casetă de mesaj care ne-a întrebat „Doriți să copiați?”.

AnswerYes = MsgBox („Doriți să copiați?”, VbQuestion + vbYesNu, „User Repsonse”)

Acum, declarația IF evaluează răspunsul dat prin caseta de mesaj. Dacă rezultatul casetei de mesaj este vbDa, acesta va copia intervalul A1 până la A2 și se va lipi în celula C1.

 Dacă Răspuns Da = vb Da Interval ("A1: A2"). Copiați intervalul ("C1")

Dacă răspunsul dat de caseta de mesaj este Nu, atunci va copia intervalul A1 până la A2 și se va lipi în celula E1.

Alt interval („A1: A2”). Copiați intervalul („E1”) Terminați dacă

Ok, am introdus câteva valori în celula A1 și A2 acum.

Acum voi rula codul folosind tasta F5 sau, prin opțiunea de rulare, o casetă de mesaj va apărea în fața mea și îmi cere răspunsul.

Dacă fac clic pe Da, va copia intervalul A1 în A2 și se va lipi în celula C1. Acum voi face clic pe Da și voi vedea rezultatul.

Deci, a îndeplinit sarcina atribuită dacă răspunsul este DA.

Acum, din nou, voi rula codul.

De data aceasta voi selecta Nu și voi vedea ce se întâmplă.

Da, a efectuat sarcina atribuită în cod, adică

Alt domeniu („A1: A2”). Copiați intervalul („E1”)

Exemplul nr. 2 - Ascunderea și afișarea foilor pe baza răspunsului

Codul de mai jos va ascunde toate foile, cu excepția foii active, dacă răspunsul este da.

Cod:

Sub HideAll () Dim Răspuns ca șir Dim Ws Ca foaie de lucru Răspuns = MsgBox ("Doriți să ascundeți tot?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Atunci pentru fiecare W din ActiveWorkbook.Whesheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox „Ați selectat să nu ascundeți foile”, vbInformation, „No Hide” End If End Sub

Codul de mai sus va ascunde toate foile de lucru, cu excepția foii în care ne aflăm chiar acum, dacă răspunsul din caseta de mesaj este DA.

Dacă răspunsul din caseta de mesaj este NU, se va afișa caseta de mesaj care spune: „Ați ales să nu ascundeți foile”.

În mod similar, codul de mai jos va afișa foaia dacă răspunsul este Da.

Cod:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Doriți să le ascundeți pe toate?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Ați selectat să nu dezvăluie foile", vbInformation, "No Hide" End If End Sub

Acest lucru funcționează exact la fel ca codul foii de ascundere; dacă da, se va ascunde. Dacă nu, nu se va afișa.

Articole interesante...