VBA MsgBox Áno / Nie - Ako vytvoriť odpoveď áno / nie?

Excel VBA MsgBox (áno / nie)

Vo VBA môžeme pomocou schránky na správu vytvoriť schránku správ áno nie, ktorá sa používa na zaznamenanie vstupu používateľa na základe kliknutia na odpoveď áno alebo nie. Syntax vytvorenia schránky správy áno nie je nasledovná variable = MsgBox („Text“, vbQuestion + vbYesNo + vbDefaultButton2, „Názov schránky správ“), kde musí byť premenná deklarovaná ako celé číslo.

Často pri kódovaní VBA musíme zhromažďovať vstupné hodnoty od používateľov na vykonávanie niektorých úloh a jednu z týchto úloh na zhromažďovanie odpovedí Áno alebo Nie od používateľov. Použitím metódy VBA MsgBox Áno Nie, môžeme napísať kód, aby sme v kóde mohli pokračovať.

V určitých situáciách možno budeme musieť predstaviť používateľovi možnosť Áno alebo Nie, aby mohol odpovedať, a to na základe tejto odpovede. Môžeme skutočne spustiť kód VBA.

Napríklad si pozrite nasledujúci obrázok MsgBoxu vo VBA.

Ak používateľ povie Áno, „môžeme napísať kód na vykonanie konkrétnej úlohy“, a ak používateľ povie „Nie“, môžeme napísať kód na vykonanie ďalšej množiny úloh.

Ako pracovať s odpoveďou Áno / Nie?

Príklad č. 1 - Kopírovanie a vkladanie na základe odpovede

Napríklad si pozrite nasledujúci kód.

Kód:

Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Chcete kopírovať?", VbQuestion + vbYesNo, "User Repsonse") Ak AnswerYes = vbYes Potom Rozsah ("A1: A2"). Rozsah kopírovania ("C1") Else Range ("A1: A2"). Rozsah kopírovania ("E1") End If End Sub

Vysvetlenie:

Vyššie uvedené deklarovalo premennú ako String, tj

Dim Answer Áno ako reťazec

V ďalšom riadku sme priradili hodnotu prostredníctvom okna správy s otázkou „Chcete kopírovať?“.

AnswerYes = MsgBox („Chcete kopírovať?“, VbQuestion + vbYesNo, „User Repsonse“)

Teraz príkaz IF vyhodnotí odpoveď danú prostredníctvom okna správy. Ak je výsledok v okne so správou vbYes , skopíruje sa rozsah A1 až A2 a vloží sa do bunky C1.

 Ak AnswerYes = vbYes Then Range ("A1: A2"). Rozsah kopírovania ("C1")

Ak je odpoveď daná v okne so správou Nie, skopíruje rozsah A1 až A2 a vloží sa do bunky E1.

Iný rozsah ("A1: A2"). Rozsah kopírovania ("E1") Koniec, ak

Dobre, teraz som do bunky A1 a A2 zadal niekoľko hodnôt.

Teraz spustím kód pomocou klávesu F5, alebo cez možnosť spustenia sa predo mnou objaví okno so správou a žiada o moju odpoveď.

Ak kliknem na Áno, skopíruje sa to rozsah A1 až A2 a vloží sa do bunky C1. Teraz kliknem na Áno a vidím výsledok.

Vykonala teda priradenú úlohu, ak je odpoveď ÁNO.

Teraz znova spustím kód.

Tentokrát vyberiem Nie a uvidím, čo sa stane.

Áno, vykonal úlohu priradenú v kóde tj

Iný rozsah ("A1: A2"). Rozsah kopírovania ("E1")

Príklad č. 2 - Skrytie a skrytie hárkov na základe odpovede

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 odpoveď ako reťazec Dim Ws ako odpoveď v pracovnom hárku = MsgBox ("Chcete zobraziť všetky?", VbQuestion + vbYesNo, "skryť") Ak odpoveď = vbYes potom pre každé W v ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Vybrali ste, aby sa listy neskryli", vbInformation, "No Hide" End If End Sub

Funguje to úplne rovnako ako kód skryť hárok; ak ano tak sa to odkryje. Ak nie, nebude sa to skrývať.

Zaujímavé články...