VBA Long (esimerkki) | Vaiheittainen opas pitkille tietotyypeille Excel VBA: ssa

Mikä on pitkä tietotyyppi VBA: ssa?

Long on VBA: n tietotyyppi, jota käytetään numeeristen arvojen tallentamiseen, tiedämme, että kokonaislukulla on myös numeerisia arvoja, mutta Long on erilainen kuin kokonaisluvut, koska tietojen tallennusalue on erittäin suuri, jos pitkä tietotyyppi on myös pitkä tietotyypissä voimme pitää myös desimaaliarvoja, tämä on sisäänrakennettu tietotyyppi.

"Pitkällä", kuten nimessä sanotaan, sen pitäisi olla jonkin suuren arvon arvo. "Pitkä" on numeerinen tietotyyppi VBA Excelissä.

Excel VBA: n pitkä tietotyyppi voi pitää arvot 0: sta 2: een, 147, 483, 647 positiivisille numeroille, ja negatiiviselle luvulle 0 - -2, 147, 483, 648.

VBA Long -tietotyyppi vaatii 4 tavua muistitallennusta tietokoneellesi, tämä on kaksinkertainen kokonaislukutietotyypin muuttujamuisti (2 tavua) ja puolet kaksinkertaisen tietotyypin muuttuvasta muistista (8 tavua)

En ole koskaan nähnyt skenaariota, jossa haluan hyödyntää VBA Long -tietotyypin rajaa lyhyellä urallani. Mutta näytän sinulle joitain esimerkkejä ymmärtääksesi sen paremmin.

Esimerkkejä VBA: n pitkistä tietotyypeistä

Alla on esimerkkejä excel VBA Long -tietotyypeistä.

Voit ladata tämän VBA Long Data Type Excel -mallin täältä - VBA Long Data Type Excel -malli

VBA pitkä esimerkki # 1

Heti kun ilmoitat muuttujan tietotyypiksi Pitkä, voit määrittää arvot välillä -2, 147, 483, 648 - 2, 147, 483, 648.

Ilmoita esimerkiksi muuttuja pitkäksi tietotyypiksi.

Koodi:

 Sub Long_Example1 () Dim k As Long End Sub 

Määritetään arvo laskentataulukon rivien kokonaismääränä.

Saadaksesi laskurivien kokonaismäärän Excel-laskentataulukon koodissa on “Rivit. Kreivi"

Koodi:

 Sub Long_Example1 () Dim k As Long k = Rivit.Määrä End Sub 

Näytä nyt arvo viestiruudussa.

Koodi:

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

Suorita tämä koodi ja katso laskentataulukon rivien kokonaismäärä.

Sen mukaan laskentataulukossa on yli miljoona riviä.

Nyt ymmärryksen parantamiseksi vaihdan tietotyypin LONG-arvosta INTEGER-muotoon.

Koodi:

 Alipitkä_esimerkki1 () Hämärä k kokonaislukuna k = Rivit. 

Jos suoritan VBA-koodin, saan virheilmoituksen "Overflow".

Syy miksi saimme tämän virheen VBA: ssa, koska tietotyyppi ”Kokonaisluku” voi pitää arvoja vain välillä -31768 - 32767. Tässä tapauksessa “Rivit. Laskuri ”palauttaa luvun, joka on suurempi kuin” kokonaisluku ”-muuttujan raja.

Yli miljoonan arvon määrittäminen muuttujalle, johon mahtuu vain 32767, aiheuttaa tässä ylivuotovirheen.

VBA pitkä esimerkki # 2

Etsi viimeinen rivi käyttämällä pitkää muuttujaa

Viimeisen käytetyn taulukon rivin löytäminen on tärkein koodaus. Viimeisen käytetyn taulukon rivin löytäminen edellyttää muuttujan ilmoittamista. Muuttujan ilmoittaminen ja tietotyypin määrittäminen vaatii järkeä.

Oletetaan, että datasi päättyy 25000 rivillä alla olevan kuvan mukaisesti.

Nyt tiedän, että viimeksi käytetty rivinumero on 25000, tätä varten emme tarvitse LONG-tietotyyppiä, koska INTEGER-tietotyyppi voi antaa minulle viimeisen rivin.

Katso tietosi alla olevasta koodista.

Koodi:

 Sub Long_Example1 () Dim k As Integer k = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi MsgBox k End Sub 

Jos suoritan tämän koodin, saan tällä hetkellä käyttämäni laskentataulukon viimeisen käytetyn rivinumeron.

Kooderina on tärkeää tietää tulevaisuudessa saamiesi tietojen koko. Koska data voi tällä hetkellä päättyä 25000. rivillä, mutta jos data nousee kokonaislukurajan eli 32767 yli, se aiheuttaa ylivuotovirheen.

Esimerkiksi kasvatan tiedot 32768th riville.

Jos suoritan saman koodin uudelleen, en saa arvoa, vaan saan virheen kuten alla.

Muista, että olen nostanut rajaa vain yhdellä Integer-arvon rajan yli, joten sain ylivuotovirheen.

Joten on tärkeää tietää tietojesi koko, ennen kuin määrität tietotyypin muuttujalle. Aina on parempi vaihtoehto ilmoittaa muuttuja ”LONG” ajattelematta datasi kokoa tulevaisuudessa.

Vaihtoehdot Excel VBA pitkälle muuttujalle

Sinun on jo mietittävä, mitä jos haluamme pitää arvon yli pitkän muuttujan rajan. Tätä varten meidän on käytettävä erilaisia ​​tietotyyppejä, eli joko VBA "String" tai "Variant"

Muista hetki, jolloin se ylittää numeron 2147483647, saamme ylivuotovirheen VBA: ssa LONG-tietotyypillä. Jos haluat tallentaa enemmän kuin tämän numeron, meidän on käytettävä "String" tai "Variant" tietotyyppiä.

Jouselle

Koodi:

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

Variantille

Koodi:

 Sub Long_Example2 () Dim k Variantti k = 2147483648 MsgBox k End Sub 

Kun suoritamme yllä olevat koodit, se näyttää mainitun numeron.


$config[zx-auto] not found$config[zx-overlay] not found