VBA MsgBox Oo / Hindi | Paano Lumikha ng Oo / Hindi Tugon?

Excel VBA MsgBox (Oo / Hindi)

Sa VBA, gamit ang kahon ng mensahe na maaari nating likhain a oo hindi msgbox na ginagamit upang maitala ang input ng gumagamit batay sa pag-click sa oo o hindi, ang syntax upang gumawa ng isang oo hindi kahon ng mensahe ay ang sumusunod na variable = MsgBox ("Text", vbQuestion + vbYesNo + vbDefault Button2, "Message Box Title") kung saan variable dapat ideklara bilang isang integer.

Kadalasan sa pag-coding ng VBA, kailangan naming kolektahin ang mga halaga ng pag-input mula sa mga gumagamit upang maisagawa ang ilang gawain at isa sa naturang gawain upang kolektahin ang tugon na Oo o Hindi mula sa mga gumagamit. Sa pamamagitan ng paggamit ng VBA MsgBox Oo Hindi pamamaraan maaari naming isulat ang code upang magpatuloy sa code.

Sa ilang mga sitwasyon maaaring kailanganin naming magpakita ng Opsyong Oo o Hindi sa harap ng gumagamit upang ibigay ang kanilang tugon at batay sa tugon na iyon maaari naming patakbuhin ang VBA code.

Halimbawa, tingnan ang larawan sa ibaba ng MsgBox sa VBA.

Kung sinabi ng gumagamit na Oo "maaari kaming magsulat ng code upang maisagawa ang tukoy na gawain" at kung sinabi ng gumagamit na "Hindi" maaari kaming magsulat ng code upang maisagawa ang isa pang hanay ng gawain.

Paano Magtrabaho sa MsgBox Oo / Hindi Tugon?

Maaari mong i-download ang VBA Message Box na Oo o Hindi Excel Template dito - VBA Message Box Oo o Hindi Excel Template

Halimbawa # 1 - Kopyahin at I-paste batay sa Tugon

Halimbawa, tingnan ang code sa ibaba.

Code:

 Sub MessageBox_Yes_NO_Example1 () Malabo ang Sagot Oo Tulad ng String Dim SagotNo Bilang String SagotYes = MsgBox ("Nais Mong Mangopya?", VbQuestion + vbYesNo, "Repsonse ng Gumagamit") Kung Ang Sagot na Oo = vbYes Pagkatapos Saklaw ("A1: A2"). Saklaw ng Kopya ("C1") Iba Pang Saklaw ("A1: A2"). Saklaw ng Kopya ("E1") Tapusin Kung Tapusin ang Sub 

Paliwanag:

Ang nasa itaas ay idineklara ang variable bilang String i.e.

 Malamlam na Sagot Oo Oo Bilang String 

Sa susunod na linya, itinalaga namin ang halaga sa pamamagitan ng kahon ng mensahe na tinatanong ang "Nais mo bang kumopya?".

SagotAng = MsgBox ("Nais Mo Bang Mangopya?", VbQuestion + vbYesNo, "Repsonse ng Gumagamit")

Ngayon KUNG pahayag sinusuri ang tugon na ibinigay sa pamamagitan ng kahon ng mensahe. Kung ang resulta ng kahon ng mensahe ay vbOo pagkatapos ay kokopyahin nito ang saklaw na A1 hanggang A2 at i-paste sa cell C1.

  Kung Sagot na Oo = vbYes Pagkatapos Saklaw ("A1: A2"). Saklaw ng Kopyahin ("C1")

Kung ang tugon na ibinigay ng kahon ng mensahe ay Hindi pagkatapos ay kokopyahin nito ang saklaw na A1 hanggang A2 at idikit sa cell E1.

 Iba Pang Saklaw ("A1: A2"). Saklaw ng Kopya ("E1") Tapusin Kung 

Ok, naglagay ako ng ilang mga halaga sa cell A1 at A2 ngayon.

Ngayon ay tatakbo ko ang code gamit ang F5 key o sa pamamagitan ng pagpipiliang run, isang kahon ng mensahe ang lilitaw sa harap ko at hihilingin ang aking tugon.

Kung nag-click ako sa Oo, makokopya nito ang saklaw na A1 hanggang A2 at i-paste sa C1 cell. Ngayon ay mag-click ako sa Oo at makikita ang resulta.

Kaya't ginampanan nito ang gawaing itinalaga kung ang sagot ay YES.

Ngayon muli tatakbo ang code.

Sa oras na ito pipiliin ko ang Hindi at tingnan kung ano ang mangyayari.

Oo ginanap nito ang gawain na nakatalaga sa code i.e.

 Iba Pang Saklaw ("A1: A2"). Saklaw ng Kopya ("E1")

Halimbawa # 2 - Itago at Itago ang Mga Sheet Batay sa Tugon

Itatago ng code sa ibaba ang lahat ng mga sheet maliban sa aktibong sheet kung ang tugon ay oo.

Code:

 Sub HideAll () Dim Sagot Bilang String Dim Ws Bilang Worksheet Sagot = MsgBox ("Nais Mo Bang Itago Lahat?", VbQuestion + vbYesNo, "Itago") Kung Sagot = vbYes Pagkatapos Para sa bawat Ws Sa ActiveWorkbook. Worksheets Kung Ws.Name AktiboSheet.Name Pagkatapos Ws.Visible = xlSheetVeryHidden Susunod Ws ElseIf Sagot = vbHindi Pagkatapos MsgBox "Pinili mong huwag itago ang mga sheet", vbInformation, "No Hide" End If End Sub 

Itatago ng code sa itaas ang lahat ng mga worksheet maliban sa sheet na narating namin ngayon kung ang tugon mula sa kahon ng mensahe ay YES.

Kung ang tugon mula sa kahon ng mensahe ay HINDI ipapakita nito ang kahon ng mensahe na sinasabi "Pinili mong huwag itago ang mga sheet".

Katulad nito, sa ibaba code ay ilalayo ang sheet kung ang tugon ay Oo.

Code:

 Sub UnHideAll () Malabo ang Sagot Bilang String Dim Ws Bilang Worksheet Sagot = MsgBox ("Nais Mo Bang Itago ang Lahat?", VbQuestion + vbYesNo, "Itago") Kung Sagot = vbYes Noon Para Sa bawat Ws Sa ActiveWorkbook. Worksheets Ws.Visible = xlSheetVeryHidden Susunod Ws ElseIf Sagot = vbHindi Pagkatapos MsgBox "Pinili mong huwag Itago ang mga sheet", vbInformation, "Walang Itago" Wakas Kung Nagtatapos Sub 

Gumagawa ito ng eksaktong kapareho ng itago ang sheet code, kung oo hindi ito ilalabas, kung hindi hindi ito aalisin.