VBA Long (exempel) - Steg för steg-guide till lång datatyp i Excel VBA

Innehållsförteckning

Vad är en lång datatyp i VBA?

Lång är en datatyp i VBA som används för att lagra de numeriska värdena, vi vet att heltal också innehåller numeriska värden men Lång skiljer sig från heltal eftersom intervallet för lagring av data är mycket stort vid lång datatyp också i lång datatyp kan vi hålla decimalvärden också, detta är en inbyggd datatyp.

”Långt”, som namnet säger, bör det hålla värdet på något stort. ”Lång” är en numerisk datatyp i VBA Excel.

Den långa datatypen i Excel VBA kan innehålla värdena från 0 till 2, 147, 483, 647 för positiva tal, och för det negativa antalet kan den innehålla från 0 till -2, 147, 483, 648.

VBA Long-datatyp kräver 4 byte minne på din dator. Detta är det dubbla heltalets datatyps variabla minne (2 byte) och hälften av det dubbla datatyps variabla minne (8 bytes)

Jag har aldrig sett ett scenario där jag vill utnyttja gränsen för en VBA Long-datatyp till fullo under min korta karriär. Men jag kommer att visa dig några av exemplen för att förstå det bättre.

Exempel på VBA Long Data Type

Nedan visas exempel på excel VBA Long-datatyp.

VBA långt exempel # 1

Så snart du förklarar den variabla datatypen som ”Lång” kan du tilldela värdena från -2, 147, 483, 648 till 2, 147, 483, 648.

Förklara till exempel variabeln som lång datatyp.

Koda:

Sub Long_Example1 () Dim k As Long End Sub

Låt oss tilldela värdet som ett totalt antal rader i kalkylbladet.

Att få totalt antal rader i excel-kalkylarkoden är ”Rader. Räkna"

Koda:

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

Visa nu värdet i meddelandefältet.

Koda:

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

Kör den här koden och se vad antalet rader i kalkylbladet är.

Det står att vi har mer än 1 miljon rader i kalkylbladet.

Nu för bättre förståelse kommer jag att ändra datatypen från LONG till INTEGER.

Koda:

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

Om jag kör VBA-koden får jag felmeddelandet "Overflow."

Anledningen till att vi fick det här felet i VBA eftersom datatypen "Integer" endast kan innehålla värdena från -31768 till 32767. I det här fallet, “Rader. Räkna ”returnerar talet som är mer än gränsen för variabeln” heltal ”.

Att tilldela värdet på över 1 miljon till variabeln som endast kan innehålla 32767 orsakar överflödsfelet här.

VBA Long Exempel # 2

Hitta den sista raden med långvariabel

Att hitta den senast använda raden i kalkylbladet är den viktigaste av kodningen. För att hitta den senast använda raden i kalkylbladet krävs att variabeln deklareras. Medan deklarera variabeln och tilldela en datatyp krävs en del sunt förnuft.

Antag att du har data slutar på 25000 rader, som visas i bilden nedan.

Nu vet jag att det senast använda radnumret är 25000. För detta behöver vi inte datatypen “LONG” eftersom datatypen “INTEGER” kan ge mig den sista raden.

Titta på koden nedan för din information.

Koda:

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

Om jag kör den här koden får jag det senast använda radnumret för kalkylbladet jag arbetar med just nu.

Som kodare är det viktigt att veta storleken på den data du kommer att ha i framtiden. För tillfället kan data sluta vid 25000: e raden, men om data ökar utöver "Integer" -gränsen, dvs 32767, orsakar det ett överflödsfel.

Till exempel kommer jag att öka data till 32768: e rader.

Om jag kör samma kod igen får jag inte värdet. Snarare får jag felet enligt nedan.

Kom ihåg att jag har ökat gränsen med bara 1 bortom gränsen för "Integer" -värdet, så jag fick ett överflödesfel.

Så det är viktigt att veta storleken på dina data innan du tilldelar variabeln en datatyp. Det är alltid ett bättre alternativ att förklara variabeln som “LÅNG” utan att tänka på din datastorlek i framtiden.

Alternativ till Excel VBA Long Variable

Du måste redan tänka på vad om vi vill hålla värdet mer än gränsen för en lång variabel. För detta måste vi använda olika datatyper, dvs antingen VBA “String” eller “Variant.”

Kom ihåg att när det korsar numret 2147483647 får vi ett överflödsfel i VBA med LONG-datatypen. För att lagra mer än detta nummer måste vi använda datatypen "Sträng" eller "Variant".

För sträng

Koda:

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

För Variant

Koda:

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

När vi kör ovanstående koder visar det nämnda numret.

Intressanta artiklar...