Тип података варијанте ВБА (променљива пригушена)

Варијанта Тип променљиве

Варијабла варијанте може да садржи податке у било које време (низ, целе бројеве, децимале, објекте итд.). Ако не декларишете тип променљиве, ваша променљива ће се сматрати варијантом.

Да бисте декларисали варијаблу Вариант, користите Дим Статемент (скраћено од Дименсион):

1 Дим варНаме као Вариант
1 Дим рнг као Вариант

Затим, да бисте доделили вредност променљивој, једноставно користите знак једнакости:

1 варНаме = "Јохн"
1 рнг = Табеле (1) .Ранге ("А1")

Стављање овога у процедуру изгледа овако:

12345678910 Под стрЕкампле ()'декларишите варијантеДим стрНаме Ас ВариантДим рнг Ас Вариант'попуните променљивестрНаме = "Фред Смитх"Сет рнг = Схеетс (1) .Ранге ("А1")'попуни листрнг.Валуе = стрНамеЕнд Суб

Ако покренете горњи код, ћелија А1 у листу 1 ће бити попуњена са „Фред Смитх“

По горе наведеним именима могли бисмо закључити да је варНаме би садржавао текст, а објСхеет би садржавао објекат радног листа. Али заправо, било која врста података може бити усмерена на променљиву.

Горе наведене променљиве можете попунити на следећи начин и неће доћи до грешке.

1 варНаме = 6
1 објСхеет - "Фред"

Необично је користити варијабле и то се не сматра добром праксом. Међутим, повремено су варијабле Вариант корисне.

Декларирајте варијаблу варијабле на модулу или глобалном нивоу

У претходном примеру, декларисали сте варијаблу Вариант у оквиру процедуре. Варијабле декларисане процедуром могу се користити само у оквиру те процедуре.

Уместо тога, можете прогласити варијабле Вариант на модулу или глобалном нивоу.

Ниво модула

Ниво модула променљиве се декларишу на врху кодних модула са Замутити изјава.

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

Глобални ниво

Глобални ниво променљиве се такође декларишу на врху модула кода. Међутим, уместо да користите Замутити изјаву, користите Јавно изјаву која означава да је променљива стринг доступна за коришћење током целог вашег ВБА пројекта.

1 Јавни стрНаме као варијанта

Ако сте варијаблу варијанте прогласили на нивоу модула и користили у другом модулу, дошло би до грешке.

Да сте користили кључну реч Публиц за декларисање варијабле варијанте, грешка се не би догодила и процедура би радила савршено.

Коришћење варијанте за попуњавање програма Екцел

Размотрите следећи поступак:

12345678910111213141516171819 Суб ТестВариабле'декларишите стринг који садржи назив производаЗатамните стрПродуцт ас стринг'декларирати цијели број за задржавање количине производаЗатамните иКти као цео број„изјављују да удвостручују цену производа и укупну ценуДим дблЦена као ДоублеДим дблТотал као Доубле'попуните променљивестрПродуцт = "Вишенаменско брашно"иКти = 3дблПрице = "5,00 УСД"дблТотал = "15,00 УСД"'попуните Екцел листуОпсег ("А1") = стрПродуцтОпсег ("А2") = иКтиОпсег ("А3") = дблЦенаОпсег ("А4") = дблТоталЕнд Суб

Када покренемо овај код, долази до следеће грешке.

Притисните Отклањање грешака

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

Децларе дблПрице и дблТотал као варијанте, што значи да нисте ограничени на тип података.

1 Дим дблПрице ас Вариант
1 Дим дблТотал као Вариант

Поново покрените код и подаци ће се појавити у Екцел листу како треба.

Имајте на уму да се подаци унети у А4 и А5 аутоматски конвертују у Екцелу у бројеве.

Декларисање динамичког низа

Варијабле варијанте су такође корисне када декларишете динамички низ јер дозвољавају да се величина низа мења током извођења.

СаВариант Арраи, не морате да дефинишете величину низа. Величина ће се аутоматски прилагодити.

123456789 Под ВариантАрраи ()Дим аррЛист () као варијанта'Дефинишите вредностиаррЛист = Арраи (1, 2, 3, 4)'Вредности променааррЛист = Поље (1,2,3,4,5,6)'Излазна позиција 4МсгБок аррВар (4)Енд Суб

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

wave wave wave wave wave