VBA MsgBox Ναι / Όχι - Πώς να δημιουργήσετε απάντηση Ναι / Όχι;

Πίνακας περιεχομένων

Excel VBA MsgBox (Ναι / Όχι)

Στο VBA , χρησιμοποιώντας το πλαίσιο μηνυμάτων μπορούμε να δημιουργήσουμε ένα πλαίσιο μηνυμάτων ναι όχι που χρησιμοποιείται για την καταγραφή εισόδου χρήστη βάσει του κλικ στο ναι ή όχι, η σύνταξη για να δημιουργήσετε ένα πλαίσιο μηνύματος ναι όχι έχει ως εξής μεταβλητή = MsgBox ("Text" vbQuestion + vbYesNo + vbDefaultButton2, "Τίτλος πλαισίου μηνύματος") όπου η μεταβλητή πρέπει να δηλωθεί ως ακέραιος.

Συχνά στην κωδικοποίηση VBA, πρέπει να συλλέγουμε τις τιμές εισόδου από τους χρήστες για να εκτελέσουμε κάποιες εργασίες και μία από αυτές τις εργασίες για να συλλέξουμε την απάντηση Ναι ή Όχι από τους χρήστες. Χρησιμοποιώντας τη μέθοδο VBA MsgBox Ναι Όχι, μπορούμε να γράψουμε τον κώδικα για να προχωρήσουμε περαιτέρω στον κώδικα.

Σε ορισμένες περιπτώσεις, ενδέχεται να χρειαστεί να παρουσιάσουμε μια επιλογή Ναι ή Όχι μπροστά στον χρήστη για να δώσουμε την απάντησή του και βάσει αυτής. Μπορούμε πραγματικά να τρέξουμε τον κώδικα VBA.

Για παράδειγμα, δείτε την παρακάτω εικόνα του MsgBox στο VBA.

Εάν ο χρήστης λέει Ναι, «μπορούμε να γράψουμε κώδικα για να εκτελέσουμε μια συγκεκριμένη εργασία» και αν ο χρήστης λέει «Όχι», μπορούμε να γράψουμε κώδικα για να εκτελέσουμε ένα άλλο σύνολο εργασιών.

Πώς να εργαστείτε με το MsgBox Ναι / Όχι απάντηση;

Παράδειγμα # 1 - Αντιγραφή και επικόλληση με βάση την απόκριση

Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Κώδικας:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Θέλετε να αντιγράψετε;", vbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbΝαι τότε Εύρος αντιγραφής ("A1: A2"). ("C1") Else Range ("A1: A2"). Copy Range ("E1") End if End Sub

Εξήγηση:

Τα παραπάνω έχουν δηλώσει τη μεταβλητή ως String δηλαδή

Dim Απάντηση: Ναι ως συμβολοσειρά

Στην επόμενη γραμμή, έχουμε εκχωρήσει την τιμή μέσω ενός πλαισίου μηνυμάτων που ρωτάει, "Θέλετε να αντιγράψετε;".

AnswerYes = MsgBox ("Θέλετε να αντιγράψετε;", vbQuestion + vbYesNo, "User Repsonse")

Τώρα η δήλωση IF αξιολογεί την απάντηση που δίνεται μέσω του πλαισίου μηνυμάτων. Εάν το αποτέλεσμα του πλαισίου μηνυμάτων είναι vbΝαι τότε θα αντιγράψει το εύρος A1 έως A2 και θα επικολλήσει στο κελί C1.

 Αν Απάντηση: Ναι = vbΝαι, τότε εύρος ("A1: A2"). Εύρος αντιγραφής ("C1")

Εάν η απάντηση που δίνεται από το πλαίσιο μηνύματος είναι Όχι, τότε θα αντιγράψει το εύρος A1 έως A2 και θα επικολλήσει στο κελί E1.

Εύρος αλλιώς ("A1: A2"). Εύρος αντιγραφής ("E1") Λήξη Εάν

Εντάξει, έχω εισαγάγει μερικές τιμές στα κελιά A1 και A2 τώρα.

Τώρα θα τρέξω τον κωδικό χρησιμοποιώντας το πλήκτρο F5, ή μέσω της επιλογής εκτέλεσης, θα εμφανιστεί ένα πλαίσιο μηνύματος μπροστά μου και θα ζητήσει την απάντησή μου.

Εάν κάνω κλικ στο Ναι, θα αντιγράψει το εύρος A1 έως A2 και θα επικολλήσει στο κελί C1. Τώρα θα κάνω κλικ στο Ναι και θα δω το αποτέλεσμα.

Έτσι έχει εκτελέσει την εργασία που έχει ανατεθεί εάν η απάντηση είναι ΝΑΙ.

Τώρα πάλι, θα τρέξω τον κωδικό.

Αυτή τη φορά θα επιλέξω Όχι και θα δω τι θα συμβεί.

Ναι, εκτέλεσε την εργασία που ανατέθηκε στον κώδικα, δηλαδή

Else Range ("A1: A2"). Εύρος αντιγραφής ("E1")

Παράδειγμα # 2 - Απόκρυψη & απόκρυψη φύλλων με βάση την απόκριση

The below code will hide all the sheets except the active sheet if the response is yes.

Code:

Sub HideAll() Dim Answer As String Dim Ws As Worksheet Answer = MsgBox("Do you Wish to Hide All?", 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 "You have selected not to hide the sheets", vbInformation, "No Hide" End If End Sub

The above code will hide all the worksheets except the sheet we are in right now if the response from the message box is YES.

If the response from the message box is NO, it will display the message box saying, “You have selected not to hide the sheets.”

Similarly, the below code will unhide the sheet if the response is Yes.

Code:

Sub UnHideAll () Dim Απάντηση ως συμβολοσειρά Dim Ws ως φύλλο εργασίας Απάντηση = MsgBox ("Θέλετε να αποκρύψετε όλα;", vbQuestion + vbYesNo, "Hide") Εάν Απάντηση = vbΝαι τότε για κάθε Ws στο ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Απάντηση = vbΌχι Στη συνέχεια MsgBox "Έχετε επιλέξει να μην αποκρύψετε τα φύλλα", vbInformation, "No Hide" End if End Sub

Αυτό λειτουργεί ακριβώς το ίδιο με τον κωδικό απόκρυψης. αν ναι, θα εμφανιστεί. Εάν όχι, δεν θα εμφανιστεί.

ενδιαφέροντα άρθρα...