ВБА - Враћање вредности из потпроцедуре

Овај водич ће вас научити како вратити вредност из потпроцедуре у ВБА.

Подпоступак није дизајниран да врати вредност - за то се користи функција функције. Међутим, може доћи до тренутка када покрећете неки код у под -процедури када морате да добијете вредност из те под -процедуре. Начин да то учините је употреба модула или глобалних променљивих или употреба подпроцедуре за попуњавање Екцел листа.

Коришћење променљивих за враћање вредности

Можете прогласити променљиве на нивоу модула. При томе се те променљиве могу користити било где у оквиру модула, а променљиве задржавају своје вредности. Да бисте прогласили променљиву на нивоу модула, једноставно декларишите променљиву на врху вашег кодног модула:

123456789 Опција ЕксплицитноДим дблКти као ДоублеСуб ТестА ()'позовите подморницу ТестБПозовите ТестБ'приказати променљиву вредност у прозору модулаДебуг.Принт дблКтиЕнд Суб
1234 Суб ТестБ ()'попуните променљиву модуладблКти = 900Енд Суб

Да бисмо ово спојили, покренули бисмо ТестА, који би заузврат позвао ТестБ и дао нам вредност 900 у непосредном прозору.

Ово би радило само унутар модула, јер је променљива декларисана помоћу израза Дим на нивоу модула.

Глобал Вариабле

Можете прогласити променљиву на глобалном нивоу да бисте је користили у свим пројектним модулима.

Коришћење подпоступка за попуњавање Екцел листа

Потпуна процедура испод ће директно попунити опсег А1 до Ц1 у вашем Екцел листу, враћајући тако вредности ћелијама из подпроцедуре.

12345 ПодпопулатеРанге ()Опсег ("А1") = "Производ"Опсег ("Б1") = "Количина"Опсег ("Ц1") = "Цена"Енд Суб

Затим се можете позвати на те вредности у другом поступку позивањем на вредности ћелија:

1234567 Суб РетриевеРанге ()Затамните производ као низ, колико дуго, трошак двострукоПроизвод = Опсег ("А1")Количина = Опсег ("Б1")Цена = распон ("Ц1")Енд Суб

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave