VBA Long (eksempel) - Trin for trin vejledning til lang datatype i Excel VBA

Indholdsfortegnelse

Hvad er en lang datatype i VBA?

Lang er en datatype i VBA, der bruges til at gemme de numeriske værdier, vi ved, at heltal også indeholder numeriske værdier, men Lang er forskellig fra heltal, da rækkevidden til lagring af data er meget stor i tilfælde af lang datatype også i lang tid datatype vi også kan holde decimalværdier, dette er en indbygget datatype.

”Langt”, som navnet siger, skal det indeholde værdien af ​​noget stort. “Lang” er en numerisk datatype i VBA Excel.

Den lange datatype i Excel VBA kan indeholde værdierne fra 0 til 2, 147, 483, 647 for positive tal, og for det negative tal kan den holde fra 0 til -2, 147, 483, 648.

VBA Long-datatype kræver 4 bytes hukommelseslager på din computer. Dette er den dobbelte heltal datatype variabel hukommelse (2 byte) og halvdelen af ​​den dobbelte datatype variabel hukommelse (8 byte)

Jeg har aldrig set et scenarie, hvor jeg fuldt ud vil udnytte grænsen for en VBA Long-datatype i min korte karriere. Men jeg vil vise dig nogle af eksemplerne for at forstå det bedre.

Eksempler på VBA lang datatype

Nedenfor er eksempler på excel VBA Long datatype.

VBA langt eksempel # 1

Så snart du erklærer den variable datatype som "Lang", kan du tildele værdierne fra -2, 147, 483, 648 til 2, 147, 483, 648.

Forklar f.eks. Variablen som lang datatype.

Kode:

Sub Long_Example1 () Dim k As Long End Sub

Lad os tildele værdien som et samlet antal rækker på regnearket.

For at få det samlede antal rækker i excel-regnearkkoden er “Rækker. Tælle"

Kode:

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

Vis nu værdien i meddelelsesfeltet.

Kode:

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

Kør denne kode og se, hvad de samlede rækker tæller i regnearket.

Det siger, at vi har mere end 1 million rækker i regnearket.

Nu for bedre forståelse vil jeg ændre datatypen fra LANG til INTEGER.

Kode:

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

Hvis jeg kører VBA-koden, får jeg fejlmeddelelsen "Overflow".

Årsagen til, at vi fik denne fejl i VBA, fordi datatypen "Heltal" kun kan holde værdierne fra -31768 til 32767. I dette tilfælde “Rækker. Tæl ”returnerer det tal, der er mere end grænsen for” heltal ”-variablen.

Tildeling af værdien på over 1 million til variablen, der kun kan rumme 32767, forårsager overløbsfejl her.

VBA langt eksempel # 2

Find den sidste række ved hjælp af lang variabel

At finde den sidst anvendte række på regnearket er den vigtigste af kodningen. For at finde den sidst anvendte række på regnearket kræves, at variablen erklæres. Mens det at erklære variablen og tildele en datatype kræver en vis sund fornuft.

Antag, at du har ender på 25.000 rækker, som vist i nedenstående billede.

Nu ved jeg, at det sidst anvendte række nummer er 25000. Til dette behøver vi ikke "LANG" datatypen, fordi datatypen "INTEGER" kan give mig den sidste række.

Se på nedenstående kode for dine oplysninger.

Kode:

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

Hvis jeg kører denne kode, får jeg det sidst anvendte række nummer på det regneark, jeg arbejder på i øjeblikket.

Som koder er det vigtigt at kende størrelsen på de data, du har i fremtiden. Fordi i det øjeblik, kan data slutter ved 25000 th række, men hvis data forhøjelser ud over ”Integer” grænse, dvs. 32767, det forårsager et overløb fejl.

For eksempel vil jeg øge dataene til 32768 th rækker.

Hvis jeg nu kører den samme kode igen, får jeg ikke værdien. I stedet får jeg fejlen som nedenfor.

Husk, jeg har øget grænsen med kun 1 ud over grænsen for "Integer" -værdien, så jeg fik en Overflow-fejl.

Så det er vigtigt at kende størrelsen på dine data, før du tildeler variablen en datatype. Det er altid en bedre mulighed at erklære variablen som "LANG" uden at tænke på din datastørrelse i fremtiden.

Alternativer til Excel VBA lang variabel

Du skal allerede tænke over, hvad hvis vi vil holde værdien mere end grænsen for en lang variabel. Til dette er vi nødt til at bruge forskellige datatyper, dvs. enten VBA "String" eller "Variant."

Husk, i det øjeblik det krydser nummeret 2147483647, får vi en overløbsfejl i VBA med LONG-datatypen. For at gemme mere end dette nummer skal vi bruge datatypen "String" eller "Variant".

Til streng

Kode:

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

Til variant

Kode:

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

Når vi kører ovenstående koder, viser det det nævnte nummer.

Interessante artikler...