Дуги променљиви тип
ВБА Лонг тип података се користи за складиштење веома дугих података (-2,147,483,648 до 2,147,483,648). Може да складишти само целе бројеве (без децималних места).
Да бисте декларисали променљиву Лонг, користите изјаву Дим (скраћено од Дименсион):
1 | Дим лнгА ас Лонг |
Затим, да бисте доделили вредност променљивој, једноставно користите знак једнакости:
1 | лнгА = 30000 |
Стављање овога у процедуру изгледа овако:
12345678 | Суб лнгЕкампле ()'декларишите променљиву лонгДим лнгА ас Лонг'попуните дугачку променљивулнгА = 30000'прикажи оквир за порукуМсгБок лнгАЕнд Суб |
Ако покренете горњи код, приказаће се следеће поље за поруку.
ЛонгЛонг тип података
Тип података ЛонгЛонг доступан је само у 64 -битној верзији Мицрософт Оффице -а. Ако користите 32 -битну верзију система Оффице на 64 -битној машини, овај тип података неће бити доступан. Подржава бројеве у опсегу од -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
1 | Дим лнгА као ЛонгЛонг |
Тип података ЛонгПтр
ЛонгПтр је уведен у ВБА како би подржао 64 -битну верзију Мицрософт Оффице -а. На 32 -битном систему се третира као Лонг, а на 64 -битним системима као ЛонгЛонг.
1 | Дим лнгА као ЛонгПтр |
Напомена: ЛонгПтр није доступан у програму Екцел 2007 или старијем.
Децималне вредности и дуги типови података
Дуге променљиве не могу да складиште децималне вредности. Ако дуго унесете децимални број, децимални број ће бити заокружен да бисте уклонили децимални број.
Стога, ако бисте покренули следећу процедуру:
12345678 | Под ЛнгЕкамплеБ ()'декларишите променљиву лонгДим лнгА ас Лонг'попуните дугачку променљивулнгА = 3524,12'прикажи оквир за порукуМсгБок лнгАЕнд Суб |
Децимална вредност би била заокружена, враћајући следећу поруку:
Међутим, овај код испод:
12345678 | Под ЛнгЕкамплеБ ()'декларишите променљиву лонгДим лнгА ас Лонг'попуните дугачку променљивулнгА = 3524,12'прикажи оквир за порукуМсгБок лнгАЕнд Суб |
Вратио би следеће поље за поруку (заокруживање):
Децимални / двоструки тип података
Ако желите да сачувате децимално место, морали бисте да декларишете променљиву која дозвољава децимална места. Постоје 3 типа података које можете користити - појединачни, двоструки или валутни.
1 | Дим снгПрице ас Сингле |
1 | Дим дблЦена као Доубле |
1 | Дим цурПрице ас Цурренци |
Јединствени тип података ће заокруживати децималну запету нешто другачије од двоструког и валутног типа података, па је за тачност пожељно користити двоструко до појединачно. Доубле може имати до 12 децималних места, док Цурренци и Сингле могу имати до 4 децимална места.
Прогласите дугу променљиву на модулу или глобалном нивоу
У претходним примерима смо декларисали променљиву Лонг унутар процедуре. Варијабле декларисане процедуром могу се користити само у оквиру те процедуре.
Уместо тога, можете прогласити променљиве Лонг на модулу или глобалном нивоу.
Ниво модула
Ниво модула променљиве се декларишу на врху кодних модула са Замутити изјава.
Ове променљиве се могу користити са било којом процедуром у том кодном модулу.
Глобални ниво
Глобални ниво променљиве се такође декларишу на врху модула кода. Међутим, уместо да користите Замутити изјаву, користите Јавно изјаву која означава да је дугачка променљива доступна за коришћење током целог вашег ВБА пројекта.
1 | Публиц лнгА ас Лонг |
Ако бисте декларисали променљиву лонг на нивоу модула, а затим покушали да је користите у другом модулу, дошло би до грешке.
Међутим, да сте користили кључну реч Публиц за декларисање дуге променљиве, грешка се не би догодила и процедура би радила савршено.
Форматирајте дуго ускладиштено као низ
Можда ћете морати да форматирате дугачак тип података у низ - на пример датум или желите да прикажете симбол валуте.
Да бисте то постигли, користите функцију Формат.
Следећи поступак:
1234567891011 | Суб ТестЛонгТоСтринг ()'декларишите променљиву стрингаЗатамните стрДате као стринг'декларишите лонг и попуните вредностДим лнгДате толико дуголнгДате = 44055'претвори лонг у стринг форматиран као датумстрДате = Формат (лнгДате, "дд мммм ииии")'погледајте резултатДебуг.Принт стрДатеЕнд Суб |
би вратио резултат испод:
и следећи поступак
1234567891011 | Суб ТестЛонгтоЦурренциСтринг ()'декларишите променљиву стрингаДим стрМонеи Ас Стринг'декларишите лонг и попуните вредностДим лнгВалуе Ас ЛонглнгВалуе = 44055'претворите лонг у низ са симболом валутестрМонеи = Формат (лнгВалуе, "$#, ## 0")'погледајте резултатМсгБок стрМонеиЕнд Суб |
би вратио овај резултат: