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

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

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

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

Дуги тип података у програму Екцел ВБА може да садржи вредности од 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 МсгБок к Енд Суб 

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