VBA MsgBox Ja / Nein - Wie erstelle ich eine Ja / Nein-Antwort?

Inhaltsverzeichnis

Excel VBA MsgBox (Ja / Nein)

In VBA können wir mithilfe des Meldungsfelds ein Ja-Nein-Meldungsfeld erstellen, das zum Aufzeichnen von Benutzereingaben basierend auf dem Klicken auf Ja oder Nein verwendet wird. Die Syntax zum Erstellen eines Ja-Nein-Meldungsfelds lautet wie folgt: variable = MsgBox („Text“, vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title") wobei die Variable als Ganzzahl deklariert werden muss.

Bei der VBA-Codierung müssen häufig die Eingabewerte der Benutzer erfasst werden, um einige Aufgaben auszuführen, und eine dieser Aufgaben, um die Ja- oder Nein-Antwort der Benutzer zu erfassen. Mit der VBA MsgBox Ja Nein-Methode können wir den Code schreiben, um im Code fortzufahren.

In bestimmten Situationen müssen wir dem Benutzer möglicherweise eine Ja- oder Nein-Option vorlegen, um seine Antwort zu geben, und zwar basierend auf dieser Antwort. Wir können den VBA-Code tatsächlich ausführen.

Schauen Sie sich beispielsweise das folgende Bild der MsgBox in VBA an.

Wenn der Benutzer "Ja" sagt, "wir können Code schreiben, um eine bestimmte Aufgabe auszuführen", und wenn der Benutzer "Nein" sagt, können wir Code schreiben, um einen anderen Satz von Aufgaben auszuführen.

Wie arbeite ich mit MsgBox? Ja / Nein Antwort?

Beispiel 1 - Kopieren und Einfügen basierend auf der Antwort

Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Möchten Sie kopieren?", VbQuestion + vbYesNo, "User Repsonse") Wenn AnswerYes = vbYes Then Range ("A1: A2") ("C1") Sonst Bereich ("A1: A2"). Kopierbereich ("E1") End If End Sub

Erläuterung:

Das Obige hat die Variable als String deklariert, dh

Dim AnswerYes As String

In der nächsten Zeile haben wir den Wert über ein Meldungsfeld mit der Frage "Möchten Sie kopieren?" Zugewiesen.

AnswerYes = MsgBox ("Möchten Sie kopieren?", VbQuestion + vbYesNo, "User Repsonse")

Jetzt wertet die IF-Anweisung die Antwort aus, die über das Meldungsfeld gegeben wird. Wenn das Ergebnis des Meldungsfelds vbYes ist, wird der Bereich A1 bis A2 kopiert und in Zelle C1 eingefügt .

 Wenn AnswerYes = vbYes, dann Bereich ("A1: A2"). Kopierbereich ("C1")

Wenn die Antwort im Meldungsfeld Nein lautet, wird der Bereich A1 bis A2 kopiert und in Zelle E1 eingefügt.

Sonst Bereich ("A1: A2"). Kopierbereich ("E1") Ende Wenn

Ok, ich habe jetzt einige Werte in Zelle A1 und A2 eingegeben.

Jetzt führe ich den Code mit der Taste F5 aus oder über die Ausführungsoption wird ein Meldungsfeld vor mir angezeigt, in dem ich nach meiner Antwort gefragt werde.

Wenn ich auf Ja klicke, wird der Bereich A1 bis A2 kopiert und in die Zelle C1 eingefügt. Jetzt werde ich auf Ja klicken und das Ergebnis sehen.

Es hat also die zugewiesene Aufgabe ausgeführt, wenn die Antwort JA lautet.

Jetzt werde ich wieder den Code ausführen.

Dieses Mal werde ich Nein auswählen und sehen, was passiert.

Ja, es hat die im Code zugewiesene Aufgabe ausgeführt, d. H.

Sonst Bereich ("A1: A2"). Kopierbereich ("E1")

Beispiel 2 - Ein- und Ausblenden von Blättern basierend auf der Antwort

Mit dem folgenden Code werden alle Blätter außer dem aktiven Blatt ausgeblendet, wenn die Antwort Ja lautet.

Code:

Sub HideAll () Dim Antwort als Zeichenfolge Dim Ws als Arbeitsblatt Answer = MsgBox ("Möchten Sie alle ausblenden?", VbQuestion + vbYesNo, "Hide") Wenn Answer = vbYes Dann für jede Ws in ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Sie haben ausgewählt, die Blätter nicht auszublenden", vbInformation, "No Hide" End If End Sub

Der obige Code verbirgt alle Arbeitsblätter mit Ausnahme des Blattes, in dem wir uns gerade befinden, wenn die Antwort aus dem Meldungsfeld JA lautet.

Wenn die Antwort aus dem Meldungsfeld NEIN lautet, wird das Meldungsfeld mit der Meldung "Sie haben ausgewählt, die Blätter nicht auszublenden" angezeigt .

In ähnlicher Weise wird das Blatt durch den folgenden Code ausgeblendet, wenn die Antwort Ja lautet.

Code:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Möchten Sie alle einblenden?", VbQuestion + vbYesNo, "Hide") Wenn Answer = vbYes, dann für jedes Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Sie haben ausgewählt, die Blätter nicht einzublenden", vbInformation, "No Hide" End If End Sub

Dies funktioniert genauso wie der Code für das Ausblenden des Arbeitsblatts. Wenn ja, wird es ausgeblendet. Wenn nein, wird es nicht ausgeblendet.

Interessante Beiträge...