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

Преглед садржаја

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

У ВБА , помоћу оквира за поруке можемо створити да не мсгбок који се користи за снимање корисничког уноса на основу клика на да или не, синтакса за да не порука је следећа променљива = МсгБок („Текст“ вбКуестион + вбИесНо + вбДефаултБуттон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 - Сакриј и откриј листове на основу одговора

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

Шифра:

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

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

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

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

Шифра:

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

Ово ради потпуно исто као и код сакривања листа; ако је одговор да, откриће се. Ако не, неће се открити.

Занимљиви Чланци...