ВБА Лонг (Пример) - Водич по корак по дуги тип података у програму Екцел ВБА

Шта је дугачак тип података у ВБА?

Лонг је тип података у ВБА који се користи за чување нумеричких вредности, знамо да цео број такође садржи нумеричке вредности, али Лонг се разликује од целих бројева јер је опсег за чување података веома велик у случају дугог типа података и у лонг-у тип података можемо држати и децималне вредности, ово је уграђени тип података.

„Дуго“, како само име каже, требало би да садржи вредност нечега великог. „Лонг“ је нумерички тип података у ВБА Екцел-у.

Дуги тип података у програму Екцел ВБА може да садржи вредности од 0 до 2, 147, 483, 647 за позитивне бројеве, а за негативни број од 0 до -2, 147, 483, 648.

Тип података ВБА Лонг захтева 4 бајта меморије вашег рачунара. То је двострука број података променљива типа меморије (2 бајта) и половина двоструког променљиве меморије типа података (8 бајтова)

Никада у својој краткој каријери нисам видео сценарио у којем желим у потпуности да искористим ограничење типа података ВБА Лонг. Али показаћу вам неке примере да бисте то боље разумели.

Примери ВБА дугог типа података

Испод су примери Екцел података типа ВБА Лонг.

ВБА дугачак пример # 1

Чим прогласите тип података променљиве као „Лонг“, можете доделити вредности од -2, 147, 483, 648 до 2, 147, 483, 648.

На пример, прогласите променљиву као дугачки тип података.

Шифра:

Суб Лонг_Екампле1 () Дим к Ас Лонг Енд Суб

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

Да бисте добили укупни број редова у коду радног листа Екцел-а је „Редови. Цоунт ”

Шифра:

Суб Лонг_Екампле1 () Дим к Ас Лонг к = Ровс.Цоунт Енд Суб

Сада покажите вредност у оквиру за поруку.

Шифра:

Суб Лонг_Екампле1 () Дим к Ас Лонг к = Ровс.Цоунт МсгБок к Енд Суб

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

Каже да на радном листу имамо више од милион редова.

Сада ћу ради бољег разумевања променити тип података из ЛОНГ у ИНТЕГЕР.

Шифра:

Суб Лонг_Екампле1 () Дим к Ас Интегер к = Ровс.Цоунт МсгБок к Енд Суб

Ако покренем ВБА код, добићу поруку о грешци као „Преливање“.

Разлог зашто смо добили ову грешку у ВБА јер тип података „Интегер“ може садржати вредности од -31768 до 32767. У овом случају, „Редови. Цоунт ”вратиће број који је већи од ограничења променљиве„ интегер ”.

Додељивање вредности преко 1 милиона променљивој која може да садржи само 32767 овде узрокује грешку преливања.

ВБА дугачки пример # 2

Пронађите последњи ред користећи дугачку променљиву

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

Претпоставимо да се подаци завршавају на 25000 редова, као што је приказано на доњој слици.

Сада знам да је последњи коришћени број реда 25000. За ово нам не треба тип података „ЛОНГ“, јер тип података „ИНТЕГЕР“ може да ми да последњи ред.

Потражите своје податке у доњем коду.

Шифра:

Суб Лонг_Екампле1 () Дим к Ас Интегер к = Целлс (Ровс.Цоунт, 1) .Енд (клУп) .Ред МсгБок к Енд Суб

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

Као кодер, важно је знати величину података које ћете имати у будућности. Јер, тренутно подаци могу да се завршавају на 25000- том реду, али ако се подаци повећају изнад ограничења „Интегер“, тј. 32767, то узрокује грешку преливања.

На пример, ја ћу повећати податке 32768 тх редова.

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

Запамтите, повећао сам ограничење за само 1 изнад ограничења вредности „Интегер“, па сам добио грешку преливања.

Дакле, важно је знати величину података пре него што променљивој доделите тип података. Увек је боља опција прогласити променљиву као „ЛОНГ“ без размишљања о вашој величини података у будућности.

Алтернативе Екцел ВБА Лонг Вариабле

Сигурно већ размишљате о томе шта ако желимо да задржимо вредност већу од ограничења дуге променљиве. За ово морамо да користимо различите типове података, тј. ВБА „Стринг“ или „Вариант“.

Запамтите, чим пређе број 2147483647, добићемо грешку преливања у ВБА са типом ЛОНГ података. Да бисмо сачували више од овог броја, морамо да користимо тип података „Стринг“ или „Вариант“.

Фор Стринг

Шифра:

Суб Лонг_Екампле2 () Дим к Ас Стринг к = 2147483648 МсгБок к Енд Суб

За Вариант

Шифра:

Суб Лонг_Екампле2 () Дим к Ас Вариант к = 2147483648 МсгБок к Енд Суб

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

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