VBA lang

Wat is een lang gegevenstype in VBA?

Long is een gegevenstype in VBA dat wordt gebruikt om de numerieke waarden op te slaan, we weten dat integer ook numerieke waarden bevat, maar Long verschilt van gehele getallen, omdat het bereik voor de opslag van gegevens erg groot is in het geval van een lang gegevenstype, ook in long gegevenstype we kunnen ook decimale waarden bevatten, dit is een ingebouwd gegevenstype.

"Lang", zoals de naam al zegt, zou de waarde van iets groots moeten bevatten. "Lang" is een numeriek gegevenstype in VBA Excel.

Het lange gegevenstype in Excel VBA kan de waarden van 0 tot 2, 147, 483, 647 bevatten voor positieve getallen en voor het negatieve getal van 0 tot -2, 147, 483, 648.

VBA Lang gegevenstype vereist 4 bytes geheugenopslag van uw computer, dit is het dubbele integer gegevenstype variabel geheugen (2 bytes) en de helft van het dubbele gegevenstype variabel geheugen (8 bytes)

Ik heb nog nooit een scenario gezien waarin ik de limiet van een VBA Long-gegevenstype volledig wil benutten in mijn korte carrière. Maar ik zal u enkele voorbeelden laten zien om het beter te begrijpen.

Voorbeelden van VBA Long Data Type

Hieronder staan ​​de voorbeelden van Excel VBA Long-gegevenstype.

U kunt deze VBA Long Data Type Excel-sjabloon hier downloaden - VBA Long Data Type Excel-sjabloon

VBA lang voorbeeld # 1

Zodra u het variabele datatype 'Lang' declareert, kunt u de waarden van -2, 147, 483, 648 tot 2, 147, 483, 648 toewijzen.

Declareer de variabele bijvoorbeeld als lang gegevenstype.

Code:

 Sub Long_Example1 () Dim k As Long End Sub 

Laten we de waarde toewijzen als een totaal aantal rijen van het werkblad.

Om het totale aantal rijen in Excel-werkblad te krijgen, is de code "Rijen. Tellen '

Code:

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

Toon nu de waarde in het berichtvenster.

Code:

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

Voer deze code uit en kijk wat het totale aantal rijen in het werkblad is.

Er staat dat we meer dan 1 miljoen rijen in het werkblad hebben.

Voor een beter begrip zal ik het gegevenstype wijzigen van LONG naar INTEGER.

Code:

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

Als ik de VBA-code uitvoer, krijg ik de foutmelding als "Overflow".

De reden waarom we deze fout in VBA hebben gekregen, omdat het gegevenstype "Integer" alleen de waarden van -31768 tot 32767 kan bevatten. In dit geval “Rijen. Count ”retourneert het getal dat meer is dan de limiet van de variabele“ integer ”.

Het toewijzen van de waarde van meer dan 1 miljoen aan de variabele die alleen 32767 kan bevatten, veroorzaakt hier de overloopfout.

VBA lang voorbeeld # 2

Zoek de laatste rij met behulp van lange variabele

Het vinden van de laatst gebruikte rij van het werkblad is de belangrijkste van de codering. Om de laatst gebruikte rij van het werkblad te vinden, moet de variabele worden gedeclareerd. Bij het declareren van de variabele en het toewijzen van een datatype is gezond verstand vereist.

Stel dat u gegevens heeft die eindigen op 25.000 rijen, zoals weergegeven in de onderstaande afbeelding.

Nu weet ik dat het laatst gebruikte rijnummer 25000 is. Hiervoor hebben we het datatype "LONG" niet nodig omdat het datatype "INTEGER" me de laatste rij kan geven.

Bekijk de onderstaande code voor uw informatie.

Code:

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

Als ik deze code uitvoer, krijg ik het laatst gebruikte rijnummer van het werkblad waar ik momenteel aan werk.

Als coder is het belangrijk om te weten hoe groot de gegevens zijn die u in de toekomst zult hebben. Omdat op dit moment de gegevens kunnen eindigen op de 25000ste rij, maar als de gegevens de limiet van "Integer" overschrijden, dwz 32767, veroorzaakt dit een overloopfout.

Ik zal de gegevens bijvoorbeeld verhogen tot 32768e rijen.

Als ik nu dezelfde code opnieuw uitvoer, krijg ik niet de waarde, maar krijg ik de foutmelding zoals hieronder.

Onthoud dat ik de limiet heb verhoogd met slechts 1 voorbij de limiet van de "Integer" -waarde, dus ik kreeg een overloopfout.

Het is dus belangrijk om de grootte van uw gegevens te kennen voordat u een gegevenstype aan de variabele toewijst. Het is altijd een betere optie om de variabele als "LONG" te declareren zonder in de toekomst aan uw gegevensomvang te denken.

Alternatieven voor Excel VBA Long Variable

U moet al nadenken over wat als we de waarde meer willen vasthouden dan de limiet van een lange variabele. Hiervoor moeten we verschillende gegevenstypen gebruiken, dwz VBA "String" of "Variant"

Onthoud dat het moment dat het nummer 2147483647 kruist, we een overloopfout krijgen in VBA met het LONG-gegevenstype. Om meer dan dit nummer op te slaan, moeten we het gegevenstype "String" of "Variant" gebruiken.

Voor String

Code:

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

Voor Variant

Code:

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

Wanneer we de bovenstaande codes uitvoeren, wordt het genoemde nummer weergegeven.