VBA MsgBox Sì / No - Come creare una risposta sì / no?

Excel VBA MsgBox (Sì / No)

In VBA , utilizzando la finestra di messaggio possiamo creare una casella di messaggio sì no che viene utilizzata per registrare l'input dell'utente in base al clic su sì o no, la sintassi per creare una finestra di messaggio sì no è la seguente variabile = MsgBox ("Testo", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title") dove la variabile deve essere dichiarata come numero intero.

Spesso nella codifica VBA, dobbiamo raccogliere i valori di input dagli utenti per eseguire alcune attività e una di queste attività per raccogliere la risposta Sì o No dagli utenti. Utilizzando il metodo VBA MsgBox Sì No, possiamo scrivere il codice per procedere ulteriormente nel codice.

In determinate situazioni, potrebbe essere necessario presentare un'opzione Sì o No di fronte all'utente per fornire la propria risposta e in base a tale risposta. Possiamo effettivamente eseguire il codice VBA.

Ad esempio, guarda l'immagine sotto del MsgBox in VBA.

Se l'utente dice Sì, "possiamo scrivere codice per eseguire un'attività specifica" e se l'utente dice "No", possiamo scrivere codice per eseguire un altro insieme di attività.

Come lavorare con MsgBox Sì / Nessuna risposta?

Esempio n. 1: copia e incolla in base alla risposta

Ad esempio, guarda il codice seguente.

Codice:

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"). Copy Range ("C1") Else Range ("A1: A2"). Copia intervallo ("E1") End If End Sub

Spiegazione:

Quanto sopra ha dichiarato la variabile come String ie

Risposta fioca: Sì come stringa

Nella riga successiva, abbiamo assegnato il valore tramite una finestra di messaggio che chiede: "Copiare?".

AnswerYes = MsgBox ("Do You Wish to Copy?", VbQuestion + vbYesNo, "User Repsonse")

Ora l'istruzione IF valuta la risposta fornita tramite la finestra di messaggio. Se il risultato della finestra di messaggio è vbYes , copierà l'intervallo da A1 a A2 e incollerà nella cella C1.

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

Se la risposta data dalla finestra di messaggio è No, copierà l'intervallo da A1 a A2 e incollerà nella cella E1.

Altro intervallo ("A1: A2"). Copia intervallo ("E1") End If

Ok, ora ho inserito pochi valori nelle celle A1 e A2.

Ora eseguirò il codice utilizzando il tasto F5 o tramite l'opzione di esecuzione, verrà visualizzata una finestra di messaggio di fronte a me che richiede la mia risposta.

Se faccio clic su Sì, copierà l'intervallo da A1 a A2 e incollerà nella cella C1. Ora farò clic su Sì e vedrò il risultato.

Quindi ha eseguito l'attività assegnata se la risposta è SI.

Ora di nuovo, eseguirò il codice.

Questa volta selezionerò No e vedrò cosa succede.

Sì, ha eseguito il compito assegnato nel codice, ad es

Altro intervallo ("A1: A2"). Copia intervallo ("E1")

Esempio n. 2 - Nascondi e mostra fogli in base alla risposta

Il codice seguente nasconderà tutti i fogli tranne il foglio attivo se la risposta è sì.

Codice:

Sub HideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Vuoi nascondere tutto?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Hai scelto di non nascondere i fogli", vbInformation, "No Hide" End If End Sub

Il codice sopra nasconderà tutti i fogli di lavoro tranne il foglio in cui ci troviamo in questo momento se la risposta dalla finestra di messaggio è SÌ.

Se la risposta dalla finestra di messaggio è NO, verrà visualizzata la finestra di messaggio che dice "Hai scelto di non nascondere i fogli".

Allo stesso modo, il codice seguente mostrerà il foglio se la risposta è Sì.

Codice:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Do you Wish to Unhide All?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Hai scelto di non mostrare i fogli", vbInformation, "No Hide" End If End Sub

Funziona esattamente come il codice del foglio nascosto; se sì, verrà visualizzato. In caso contrario, non verrà visualizzato.

Articoli interessanti...