VBA Long (Primjer) | Korak po korak Vodič za dugu vrstu podataka u programu Excel VBA

Što je duga vrsta podataka u VBA?

Long je vrsta podataka u VBA-u koja se koristi za pohranu numeričkih vrijednosti, znamo da cijeli broj također sadrži numeričke vrijednosti, ali Long se razlikuje od cijelih brojeva jer je raspon za pohranu podataka vrlo velik u slučaju dugog tipa podataka i u long tip podataka možemo držati i decimalne vrijednosti, ovo je ugrađeni tip podataka.

"Dugo", kako samo ime kaže, trebalo bi držati vrijednost nečega velikog. "Long" je numerički tip podataka u VBA Excelu.

Dugi tip podataka u Excelu VBA može sadržavati vrijednosti od 0 do 2, 147, 483, 647 za pozitivne brojeve, a za negativni broj od 0 do -2, 147, 483, 648.

VBA Long type podataka zahtijeva 4 bajta memorije vašeg računala, to je varijabla memorije dvostrukog cijelog tipa podataka (2 bajta) i polovica dvostruke memorije varijable tipa podataka (8 bajta)

Nikad u svojoj kratkoj karijeri nisam vidio scenarij u kojem želim u potpunosti iskoristiti ograničenje tipa podataka VBA Long. Ali pokazat ću vam neke primjere kako biste to bolje razumjeli.

Primjeri VBA dugog tipa podataka

Ispod su primjeri excel VBA Long tipa podataka.

Ovdje možete preuzeti ovaj predložak VBA dugačkog tipa podataka Excel ovdje - VBA predložak dugog tipa podataka Excel

VBA dugački primjer # 1

Čim proglasite tip podataka varijable kao "Long", možete dodijeliti vrijednosti od -2, 147, 483, 648 do 2, 147, 483, 648.

Na primjer, deklarirajte varijablu kao dugi tip podataka.

Kodirati:

 Sub Long_Example1 () Dim k Kao Long End Sub 

Dodijelimo vrijednost kao ukupan broj redaka radnog lista.

Da biste dobili ukupni broj redaka u kodu radnog lista programa Excel, to je „Redovi. Računati"

Kodirati:

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

Sada prikaži vrijednost u okviru za poruku.

Kodirati:

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

Pokrenite ovaj kôd i pogledajte koliki je ukupan broj redaka na radnom listu.

Kaže da na radnom listu imamo više od milijun redaka.

Sada ću radi boljeg razumijevanja promijeniti vrstu podataka iz LONG u INTEGER.

Kodirati:

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

Ako pokrenem VBA kôd, dobit ću poruku o pogrešci kao "Prelijevanje".

Razlog zašto smo dobili ovu pogrešku u VBA-u jer vrsta podataka "Integer" može sadržavati samo vrijednosti od -31768 do 32767. U ovom slučaju „Redovi. Count ”vratit će broj koji je veći od ograničenja varijable“ integer ”.

Dodjeljivanje vrijednosti preko 1 milijuna varijabli koja može sadržavati samo 32767 ovdje uzrokuje pogrešku prelijevanja.

VBA dugački primjer # 2

Pronađite posljednji red pomoću duge varijable

Pronalaženje posljednjeg korištenog retka radnog lista najvažnije je od kodiranja. Da bi se pronašao zadnji korišteni redak radnog lista, potrebna je deklaracija varijable. Iako deklariranje varijable i dodjeljivanje vrste podataka zahtijeva zdrav razum.

Pretpostavimo da imate podatke koji završavaju na 25000 redaka kao što je prikazano na donjoj slici.

Sada znam da je zadnji upotrijebljeni broj retka 25000, zato nam ne treba vrsta podataka „LONG“, jer tip podataka „INTEGER“ može mi dati zadnji redak.

Potražite svoje podatke u donjem kodu.

Kodirati:

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

Ako pokrenem ovaj kod, dobit ću zadnji upotrijebljeni broj retka radnog lista na kojem trenutno radim.

Kao koder, važno je znati veličinu podataka koje ćete imati u budućnosti. Budući da u ovom trenutku podaci mogu završiti na 25000. retku, ali ako se podaci povećaju iznad ograničenja "Integer", tj. 32767, to uzrokuje pogrešku prelijevanja.

Na primjer, povećat ću podatke na 32768. retka.

Sada, ako ponovo pokrenem isti kod, neću dobiti vrijednost, nego ću dobiti pogrešku kao u nastavku.

Sjetite se da sam ograničenje povećao za samo 1 preko granice vrijednosti "Integer", pa sam dobio pogrešku Overflow.

Stoga je važno znati veličinu podataka prije nego što varijabli dodijelite tip podataka. Uvijek je bolja opcija proglasiti varijablu "LONG" bez razmišljanja o vašoj veličini podataka u budućnosti.

Alternative Excel VBA Long Variable

Sigurno već razmišljate o tome što ako želimo zadržati vrijednost veću od ograničenja duge varijable. Za to trebamo koristiti različite vrste podataka, odnosno VBA „String“ ili „Variant“

Sjetite se trenutka kada prijeđe broj 2147483647, dobit ćemo pogrešku prelijevanja u VBA s LONG tipom podataka. Da bismo pohranili više od ovog broja, trebamo upotrijebiti tip podataka "String" ili "Variant".

Za String

Kodirati:

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

Za Variant

Kodirati:

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

Kada pokrenemo gornje kodove, on će prikazati spomenuti broj.