VBA Long (Exemple) | Guia pas a pas sobre el tipus de dades llarg a Excel VBA

Què és un tipus de dades llarg a VBA?

Long és un tipus de dades a VBA que s'utilitza per emmagatzemar els valors numèrics, sabem que l'enter també conté valors numèrics, però Long és diferent dels enters, ja que el rang per a l'emmagatzematge de dades és molt gran en cas de tipus de dades llargs, també en tipus de dades llargs, podem contenir valors decimals també es tracta d’un tipus de dades incorporat.

"Llarg" com diu el nom, hauria de tenir el valor d’alguna cosa gran. "Llarg" és un tipus de dades numèriques a VBA Excel.

El tipus de dades llarg a Excel VBA pot contenir els valors de 0 a 2, 147, 483, 647 per a nombres positius i, per al nombre negatiu, de 0 a -2, 147, 483, 648.

El tipus de dades VBA Long requereix 4 bytes d’emmagatzematge de memòria de l’ordinador, aquest és el doble enter tipus de dades de memòria variable (2 bytes) i la meitat de doble memòria variable de tipus de dades (8 bytes)

Mai he vist un escenari en què vull aprofitar al màxim el límit d’un tipus de dades VBA Long a la meva curta carrera. Però us mostraré alguns exemples per entendre-ho millor.

Exemples de tipus de dades llargs VBA

A continuació es mostren els exemples de tipus de dades Excel VBA Long.

Podeu descarregar aquesta plantilla Excel de tipus de dades llargues VBA aquí: plantilla Excel de tipus de dades llargues VBA

VBA Exemple llarg # 1

Tan bon punt declareu el tipus de dades variable com a "Llarg", podeu assignar els valors de -2, 147, 483, 648 a 2, 147, 483, 648.

Per exemple, declareu la variable com a tipus de dades llarg.

Codi:

 Sub Long_Example1 () Dim k Sub Long End Sub 

Assignem el valor com a recompte total de files del full de treball.

Per obtenir el recompte total de files al codi del full de treball Excel és “Fileres. Compta ”

Codi:

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

Ara mostreu el valor al quadre de missatges.

Codi:

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

Executeu aquest codi i consulteu quin és el nombre total de files del full de treball.

Es diu que tenim més d’un milió de files al full de càlcul.

Ara, per a una millor comprensió, canviaré el tipus de dades de LONG a INTEGER.

Codi:

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

Si executo el codi VBA, rebré el missatge d'error com a "Desbordament".

La raó per la qual hem rebut aquest error a VBA perquè el tipus de dades "Enter" només pot contenir els valors de -31768 a 32767. En aquest cas “Files. Recompte "retornarà el nombre que superi el límit de la variable" enter ".

Assignar el valor de més d’un milió a la variable que només pot contenir 32767 provoca l’error de desbordament aquí.

VBA Exemple llarg # 2

Cerqueu l’última fila mitjançant la variable llarga

Trobar l'última fila utilitzada del full de càlcul és el més important de la codificació. Per trobar l'última fila utilitzada del full de treball, cal que es declari la variable. Per declarar la variable i assignar un tipus de dades cal tenir cert sentit.

Suposem que teniu dades finalitzades en 25.000 files, tal com es mostra a la imatge següent.

Ara sé que l'últim número de fila utilitzat és 25000, per a això no necessitem el tipus de dades "LLARG" perquè el tipus de dades "INTEGER" em pot donar l'última fila.

Mireu el codi següent per obtenir informació.

Codi:

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

Si executo aquest codi, obtindré el darrer número de fila utilitzat del full de treball en què estic treballant en aquest moment.

Com a programador, és important conèixer la mida de les dades que tindreu en el futur. Com que en aquest moment les dades poden acabar a la 25000a fila, però si les dades augmenten més enllà del límit "enter", és a dir, 32767, provoca un error de desbordament.

Per exemple, augmentaré les dades fins a la 32768a fila.

Ara, si torno a executar el mateix codi, no obtindré el valor, sinó que obtindré l'error que es mostra a continuació.

Recordeu que he augmentat el límit només 1 per sobre del límit del valor "Enter", de manera que he rebut un error de desbordament.

Per tant, és important conèixer la mida de les vostres dades abans d’assignar un tipus de dades a la variable. Sempre és una opció millor declarar la variable com a "LLARGA" sense pensar en la mida de les vostres dades en el futur.

Alternatives a la variable llarga de VBA d'Excel

Ja heu d’estar pensant en què passa si volem mantenir el valor més que el límit d’una variable llarga. Per a això, hem d'utilitzar diferents tipus de dades, és a dir, VBA "String" o "Variant"

Recordeu el moment en què creua el número 2147483647 obtindrem un error de desbordament a VBA amb tipus de dades LLARG. Per emmagatzemar més d'aquest número, hem d'utilitzar el tipus de dades "Cadena" o "Variant".

Per a String

Codi:

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

Per a la variant

Codi:

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

Quan executem els codis anteriors, mostrarà el número esmentat.