VBA MsgBox tak / nie - Jak utworzyć odpowiedź tak / nie?

Excel VBA MsgBox (Tak / Nie)

W VBA , korzystając z okna komunikatu, możemy utworzyć tak nie msgbox, który jest używany do rejestrowania danych wejściowych użytkownika na podstawie kliknięcia tak lub nie, składnia do utworzenia okna komunikatu tak nie jest następująca zmienna = MsgBox ("Tekst", vbQuestion + vbYesNo + vbDefaultButton2, „Tytuł skrzynki wiadomości”), gdzie zmienna musi być zadeklarowana jako liczba całkowita.

Często w kodowaniu VBA musimy zebrać wartości wejściowe od użytkowników, aby wykonać niektóre zadania, i jedno z takich zadań, aby zebrać odpowiedzi tak lub nie od użytkowników. Używając metody VBA MsgBox Yes No, możemy napisać kod, aby przejść dalej w kodzie.

W niektórych sytuacjach może być konieczne przedstawienie opcji Tak lub Nie przed użytkownikiem, aby udzielić odpowiedzi, i na podstawie tej odpowiedzi. Właściwie możemy uruchomić kod VBA.

Na przykład spójrz na poniższy obraz MsgBox w języku VBA.

Jeśli użytkownik powie „Tak”, „możemy napisać kod, aby wykonać określone zadanie”, a jeśli użytkownik powie „Nie”, możemy napisać kod, aby wykonać inny zestaw zadań.

Jak pracować z MsgBox Odpowiedź Tak / Nie?

Przykład 1 - kopiowanie i wklejanie na podstawie odpowiedzi

Na przykład spójrz na poniższy kod.

Kod:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Czy chcesz skopiować?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes Then Range ("A1: A2"). Copy Range („C1”) W innym przypadku zakres („A1: A2”). Kopiuj zakres („E1”) Koniec, jeśli koniec podrzędny

Wyjaśnienie:

Powyższe zadeklarowało zmienną jako String ie

Ściemniona odpowiedź Tak jako ciąg

W następnym wierszu przypisaliśmy wartość za pomocą okna komunikatu z pytaniem „Czy chcesz skopiować?”.

AnswerYes = MsgBox („Czy chcesz skopiować?”, VbQuestion + vbYesNo, „User Repsonse”)

Teraz instrukcja IF ocenia odpowiedź podaną w oknie komunikatu. Jeśli wynik okna komunikatu to vbYes , skopiuje zakres od A1 do A2 i wklei do komórki C1.

 Jeśli AnswerYes = vbYes Then Range („A1: A2”). Kopiuj zakres („C1”)

Jeśli odpowiedź podana w oknie komunikatu to Nie, skopiuje zakres od A1 do A2 i wklei do komórki E1.

W przeciwnym razie zakres („A1: A2”). Kopiuj zakres („E1”) Zakończ, jeśli

Ok, wprowadziłem teraz kilka wartości w komórkach A1 i A2.

Teraz uruchomię kod za pomocą klawisza F5 lub przez opcję run, pojawi się przede mną okno komunikatu z prośbą o odpowiedź.

Jeśli kliknę Tak, skopiuje zakres od A1 do A2 i wklei do komórki C1. Teraz kliknę Tak i zobaczę wynik.

Więc wykonał przypisane zadanie, jeśli odpowiedź brzmi TAK.

Teraz znowu uruchomię kod.

Tym razem wybiorę Nie i zobaczę, co się stanie.

Tak, wykonał zadanie przypisane w kodzie tj

W innym przypadku zakres („A1: A2”). Kopiuj zakres („E1”)

Przykład # 2 - Ukryj i odkryj arkusze na podstawie odpowiedzi

Poniższy kod ukryje wszystkie arkusze z wyjątkiem aktywnego arkusza, jeśli odpowiedź brzmi tak.

Kod:

Sub HideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Czy chcesz ukryć wszystko?", 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 "Wybrałeś, aby nie ukrywać arkuszy", vbInformation, "No Hide" End If End Sub

Powyższy kod ukryje wszystkie arkusze z wyjątkiem arkusza, w którym teraz jesteśmy, jeśli odpowiedź z okna komunikatu to TAK.

Jeśli odpowiedź z okna komunikatu brzmi NIE, zostanie wyświetlone okno komunikatu „Wybrałeś, aby nie ukrywać arkuszy”.

Podobnie, poniższy kod pokaże arkusz, jeśli odpowiedź brzmi tak.

Kod:

Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Czy chcesz odkryć wszystko?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Wybrałeś, aby nie odkrywać arkuszy", vbInformation, "No Hide" End If End Sub

Działa to dokładnie tak samo, jak kod ukrywania arkusza; jeśli tak, to odkryje. Jeśli nie, to się nie ujawni.

Interesujące artykuły...