VBA Long (Пример) | Ръководство стъпка по стъпка за дълъг тип данни в Excel VBA

Какво е дълъг тип данни във VBA?

Long е тип данни във VBA, който се използва за съхраняване на числовите стойности, знаем, че цяло число също съдържа числови стойности, но Long се различава от целите числа, тъй като диапазонът за съхранение на данни е много голям в случай на дълъг тип данни също и в long тип данни можем да съхраняваме и десетични стойности, това е вграден тип данни.

„Дълго“, както казва името, трябва да съдържа стойността на нещо голямо. „Long“ е числов тип данни в VBA Excel.

Дългият тип данни в Excel VBA може да съдържа стойностите от 0 до 2, 147, 483, 647 за положителни числа, а за отрицателното число от 0 до -2, 147, 483, 648.

Типът данни VBA Long изисква 4 байта памет за съхранение на вашия компютър, това е двойно цяло число тип данни с променлива памет (2 байта) и половината от двойната памет с променлива тип данни (8 байта)

Никога не съм виждал сценарий, при който искам да използвам изцяло лимита на тип данни VBA Long през кратката си кариера. Но ще ви покажа някои от примерите, за да го разберете по-добре.

Примери за дълъг тип данни на VBA

По-долу са дадени примерите за тип данни на Excel VBA Long.

Можете да изтеглите този VBA шаблон за дълъг тип данни Excel от тук - VBA шаблон за дълъг тип данни Excel

Дълъг пример на VBA # 1

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

Например декларирайте променливата като дълъг тип данни.

Код:

 Sub Long_Example1 () Dim k As Long End Sub 

Нека присвоим стойността като общ брой редове на работния лист.

За да получите общия брой редове в кода на работния лист на Excel е „Редове. Броя"

Код:

 Sub Long_Example1 () Dim k As Long k = Редове. Count End Sub 

Сега покажете стойността в полето за съобщение.

Код:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

Изпълнете този код и вижте какъв е общият брой на редовете в работния лист.

В него се казва, че имаме повече от 1 милион реда в работния лист.

Сега за по-добро разбиране ще променя типа данни от LONG на INTEGER.

Код:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

Ако стартирам кода на VBA, ще получа съобщението за грешка като „Преливане“.

Причината, поради която получихме тази грешка във VBA, тъй като типът данни „Integer“ може да съдържа само стойностите от -31768 до 32767. В този случай „Редове. Count ”ще върне числото, което е повече от лимита на променливата„ integer ”.

Присвояването на стойност от над 1 милион на променливата, която може да побере само 32767, причинява грешка при препълване тук.

Дълъг пример на VBA # 2

Намерете последния ред, като използвате дълга променлива

Намирането на последния използван ред на работния лист е най-важното от кодирането. За да се намери последният използван ред на работния лист, трябва да бъде декларирана променлива. Докато декларирането на променливата и присвояването на тип данни изисква известен разум.

Да предположим, че данните ви завършват на 25000 реда, както е показано на изображението по-долу.

Сега знам, че последният използван номер на ред е 25000, за това не ни е необходим типът данни „LONG“, тъй като типът данни „INTEGER“ може да ми даде последния ред.

Погледнете кода по-долу за вашата информация.

Код:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1). End (xlUp). Ред MsgBox k End Sub 

Ако стартирам този код, ще получа номера на последния използван ред на работния лист, върху който работя в момента.

Като програмист е важно да знаете размера на данните, които ще имате в бъдеще. Тъй като в момента данните могат да завършват на 25000-ия ред, но ако данните се увеличат над границата “Integer”, т.е. 32767, това причинява грешка при препълване.

Например ще увелича данните до 32768-и редове.

Сега, ако пусна отново същия код, няма да получа стойността, а ще получа грешката, както е показано по-долу.

Не забравяйте, че съм увеличил лимита само с 1 над лимита на стойността „Integer“, така че получих грешка при препълване.

Затова е важно да знаете размера на вашите данни, преди да присвоите тип данни на променливата. Винаги е по-добра опция да декларирате променливата като „LONG“, без да мислите за размера на вашите данни в бъдеще.

Алтернативи на Excel VBA Long Variable

Сигурно вече мислите какво, ако искаме да задържим стойността повече от лимита на дълга променлива. За това трябва да използваме различни типове данни, т.е. VBA „String“ или „Variant“

Не забравяйте, че в момента, в който пресече числото 2147483647, ще получим грешка при препълване във VBA с тип данни LONG. За да съхраним повече от този номер, трябва да използваме тип данни „String“ или „Variant“.

За низ

Код:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

За Вариант

Код:

 Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub 

Когато стартираме горните кодове, той ще покаже споменатия номер.