ВБА МсгБок Да / Не | Како створити одговор да / не?

Екцел ВБА МсгБок (Да / Не)

У ВБА, помоћу оквира за поруке можемо створити да не мсгбок која се користи за снимање корисничког уноса на основу клика на да или не, синтакса да се направи да не поље за поруке је следећа променљива = МсгБок („Текст“, вбКуестион + вбИесНо + вбДефаултБуттон2, „Наслов оквира за поруке“) мора се декларисати као цео број.

Често у ВБА кодирању морамо да прикупимо улазне вредности од корисника да бисмо извршили неки задатак, а један од таквих да прикупимо одговор Да или Не од корисника. Коришћењем ВБА МсгБок Иес Но методе можемо написати код да бисмо наставили даље у коду.

У одређеним ситуацијама можда ћемо морати да представимо опцију Да или Не пред корисником како бисмо дали свој одговор и на основу тог одговора можемо стварно покренути ВБА код.

На пример, погледајте доњу слику МсгБок-а у ВБА.

Ако корисник каже Да „можемо да напишемо код за извршавање одређеног задатка“, а ако корисник каже „Не“, можемо да напишемо код за извршавање другог скупа задатака.

Како радити са МсгБок-ом Да / Не Одговор?

Овде можете преузети овај ВБА оквир за поруке Да или Не, Екцел образац - ВБА Оквир за поруке Да или Не, Екцел предложак

Пример # 1 - Копирање и лепљење на основу одговора

На пример, погледајте доњи код.

Шифра:

 Суб МессагеБок_Иес_НО_Екампле1 () Дим АнсверИес Ас Стринг Дим АнсверНо Ас Стринг АнсверИес = МсгБок ("Желите ли копирати?", ВбКуестион + вбИесНо, "Усер Репсонсе") Иф АнсверИес = вбИес тхен Ранге ("А1: А2"). ("Ц1") Елсе Ранге ("А1: А2"). Ранге Цопи ("Е1") Енд Иф Енд Суб 

Објашњење:

Горе наведено је променљиву прогласило Стринг тј.

 Нејасан одговор: Да као низ 

У следећем реду смо вредност доделили кроз оквир за поруку са питањем „Да ли желите да копирате?“.

АнсверИес = МсгБок ("Да ли желите да копирате?", ВбКуестион + вбИесНо, "Усер Репсонсе")

Сада изјава ИФ процењује одговор дат кроз оквир за поруку. Ако је резултат оквира за поруку вбДа онда ће копирати опсег А1 у А2 и залепити у ћелију Ц1.

  Ако је одговор ДА = вбДа, онда опсег ("А1: А2"). Опсег копирања ("Ц1")

Ако је одговор у оквиру за поруку одговор Не, он ће копирати опсег А1 до А2 и залепити у ћелију Е1.

 Елсе Ранге ("А1: А2"). Ранге Цопи ("Е1") Енд Иф 

Ок, сада сам унео неколико вредности у ћелије А1 и А2.

Сада ћу покренути код помоћу тастера Ф5 или кроз опцију покретања, појавит ће се оквир са поруком испред мене и тражити мој одговор.

Ако кликнем на Да, копираће опсег А1 до А2 и залепити у ћелију Ц1. Сада ћу кликнути на Да и видети резултат.

Дакле, извршило је задати задатак ако је одговор ДА.

Сада ћу поново покренути код.

Овај пут ћу одабрати Не и видети шта ће се догодити.

Да извршила је задатак додељен у коду тј.

 Остали опсег ("А1: А2"). Опсег копирања ("Е1")

Пример # 2 - Сакриј и откриј листове на основу одговора

Испод кода сакриће се сви листови, осим активног, ако је одговор да.

Шифра:

 Суб ХидеАлл () Затамни одговор као низ Затамни се као радни лист Одговор = МсгБок („Да ли желите сакрити све?“, ВбКуестион + вбИесНо, „Сакриј“) Ако је одговор = вбДа, онда за сваки Вс у АцтивеВоркбоок.Ворксхеетс Иф Вс.Наме АцтивеСхеет.Наме Затим Вс.Висибле = клСхеетВериХидден Нект Вс ЕлсеИф Ансвер = вбНо Онда МсгБок "Изабрали сте да не сакривате листове", вбИнформатион, "Но Хиде" Енд Иф Енд Суб 

Горњи код ће сакрити све радне листове, осим листа у коме се тренутно налазимо ако је одговор из оквира за поруку ДА.

Ако је одговор из оквира за поруку НЕ, приказаће се оквир са поруком „Одабрали сте да не сакривате листове“.

Слично томе, доњи код ће открити лист ако је одговор Да.

Шифра:

 Суб УнХидеАлл () Дим Ансвер Ас Стринг Дим Вс ас Ворксхеет Ансвер = МсгБок („Желите ли све открити?“, ВбКуестион + вбИесНо, „Хиде“) Ако је одговор = вбИес онда за сваки Вс у АцтивеВоркбоок.Ворксхеетс Вс.Висибле = клСхеетВериХидден Нект Вс ЕлсеИф Ансвер = вбНо Онда МсгБок "Изабрали сте да не откривате листове", вбИнформатион, "Но Хиде" Енд Иф Енд Суб 

Ово функционише потпуно исто као код листа сакривања, ако је одговор да, приказат ће се, ако не, неће се открити.