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-u 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.

Vrsta podataka VBA Long zahtijeva 4 bajta memorije vašeg računala. Ovo je varijabla memorije dvostrukog cijelog tipa podataka (2 bajta) i polovica memorije varijable dvostrukog broja podataka (8 bajtova)

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.

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 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. Za to nam ne treba vrsta podataka „LONG“, jer tip podataka „INTEGER“ može mi dati zadnji redak.

Pogledajte 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 kôd, dobit ću zadnji broj upotrijebljenog 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 se mogu završio na 25000 -og reda, ali ako se povećava podataka izvan „Integer” granice, odnosno 32.767, što uzrokuje prelijevanje pogreške.

Na primjer, ja ću povećati podatke 32.768 -og reda.

Ako ponovo pokrenem isti kod, neću dobiti vrijednost. Umjesto toga, dobit ću pogrešku kao u nastavku.

Zapamtite, povećao sam ograničenje za samo 1 prekoračivši vrijednost "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, tj. VBA „String“ ili „Variant“.

Zapamtite, čim pređe broj 2147483647, dobit ćemo pogrešku prelijevanja u VBA s tipom podataka LONG. Da bismo pohranili više od ovog broja, trebamo upotrijebiti vrstu 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.

Zanimljivi članci...